SOFTWARE ENGINEERINGName of modules:1) Fundamental of S.E.2) System analysis3) System planning4) System design5) System documentation6) Coding and programming7) Software testing8) Cost and time estimation9) Software project management10)Software quality11)CASE.Top levelMiddle levelLow level Set of instruction- this is program. Set of program- software.This software is a collection of computer programs, procedure, rulesand associative documentation and data. Program is generally usedthe developer of a specific program to make a particular software.
Q) Some characteristics of softwareincludes:1)2)3)4)5)6)Software is developed or engineer.Most of software is custom build rather than assemble fromexisting component.Computer program and associated documentation.Easy to modified.Easy to reproduce.Software product may be developed for a particular customer orfor the general market.Q) Difference between program andsoftware.programsoftware1) Small in size.2) Authors himself is user-soul.3) Single developer.4) Adopt development.5) Lack proper interface.6) Large proper documentation.1)2)3)4)5)6)Large in size.Large number.Team developer.Systematic development.Well define interface.Well documented.Definition of software: - it is systematic approach to thedevelopment, operation, maintenance and retirement of software. It isthe application of computer science along with mathematics andergative science. In the current scenario the S.E has a specificimportance for making particular software.
Why software engineering:1) In the late 1960’s hardware price were falling but software pricerising.2) Many software projects failed.3) Large software project required large development loams.4) Many software project late and over budget.5) Complicity of software project is increased.6) Demand for new software on the market.Why study software engineering?1)2)3)4)5)Higher productivity.To acquire skills to develop large programs.Ability to solve complex programming problems.Learn techniques of specification design.Better quality programmers.Application of software:1)2)3)4)5)6)7)1)2)3)4)5)System software.Application software.Engineering/scientific software.Embedded software.Product line software.Web application software.Artificial intelligence software (AI).The concept analysis in the view of S.E.System development life cycle (SDLC).Software requirement specification (SRS).Object- data base and flow base analysis.Models- spiral, water fall model.
1) The concept analysis in the view of S.E:- in the S.Ethe analysis phase helps to determine from the starting of theproject to the end of the project. It has some specific phase. Wecan make particular software for real time use. The term analysisdefine the corresponding phase or stage by which the softwaredeveloper can make a successful software. In the S.E the analysthas some specific job which is involved for making software. In aoverview we can say that the software analysis is a main termthrough we can developed, operate and maintain a particularsoftware. In the view of software developer as well as the user.The software analysis we can determine by the view of twoSide.a) For the software developer.b) For the customer (client).System development life cycle (SDLC):- SDLC is anapproach for making software for the developer, user andcustomer. SDLC focus on the internal phase to the end phase formaking particular software. It generally deals with the analyst andthe corresponding clients. SDLC has some specific phase. Thisare1) project identification2) feasibility study3) system analysis4) system design5) system development6) system testing7) system implementation8) system maintenance9) system documentation
1)Project identification: - in this phase the analystfocus the basic objective and identification need for thecorresponding software. In this phase the analyst set up somemeeting with the corresponding client for making the desiredsoftware.2)Feasibility study: - feasibility defines in the threeviews for making particular software for the client.a) Technical b) financial c) social feasibility.3)System analysis: - analysis defines how and what typeof desired software we have to make for the client. It has somepen and paper base. Exercise through which the analystfocused for there desired goals.4) System design: - in this phase the analyst draw thecorresponding diagrams related to the particular software. inthis phase the design include in the form of flow chat, data flowdiagram, ntt relationship diagram (NRD).5)System development: - development refers in theform of coding, error checking and debarking for the particularsoftware. This phase deals with the developer activity formaking a successfully software.6)System testing: - testing refers whatever analyst anddeveloper done will it be correct and error free to the desiredsoftware. In the S.E there some testing technique to which wecan check whether project is error free.Problem in the particular software. The main testingtechniques are1) white box testing2) black box testing3) ad hope testing4) system testing5) unit testing6) alpha testing7) beta testing
7) System implementation: - after completing thetesting phase we have to implement a particular product or systemaccording to the customer need. In the implementation phasesome design and other user activity part may be changed as percustomer need.8)System maintenance: - after implementation theusers use the particular software to there correspondingoperation to active there job. In this phase the softwaremaintained from the user or developer side after spanning sometimes of use of particular software. In this phase the relatedhardware, software and other utilities are also maintained.9)System documentation: - documentation refers theapproach and guidelines for the user as well as the customer tothe related software. The documentation refers some writinginstruction for how to use for related hardware requirement, andalso some maintains factors for the users.Srs (software requirement specification)Definition- SRS is a complete reading base documentationfocus on the particular desired software to the specific client orcustomer. After collecting the necessary data from SDLC we haveto summarize the useful and appropriate data for making desiredsoftware. SRS has some objectives which is help to the softwaredeveloper as well as the customer for making a successfullysoftware.Characteristics of SRS1)2)3)4)5)6)completetraceableappropriate for the developermodifiablesimple languagesoftware requirement view
Good SRS: - SRS is a very important for fact gatheringtechnique which include the consider delimiting with the customergather previous information related to particular software andreturned on investment the good characteristics of SRS includesthe following activities:1) It focuses on summarized from for a particular softwarespecification.2) The completeness deserves the related phase for making arequired specification.3) The traceable factor focus on the modification part whenever it necessary for the development of SRS.Waterfall model: - waterfall model linear representation ofits face for developing a particular system in this model. Thesephases are:1) Communication (requirement analysis, specification).2) Planning (estimating, seducing).3) Modeling (analysis, design).4) Construction (code, test).5) Deployment (delegacy, support, fid back).a) This phase involve the whole working process formaking a particular software for desired client.b) Iterative waterfall model and the classical waterfallmodel are the two types are these model availablecalices. We have to follow the linear stage or phasewhich are available in waterfall model. But in the iterativemodel we can jump over from one phase to anotherphase.Disadvantages of waterfall model:1) In real life the project are sequential.2) Intel finished the project the working versa is notavailable for the customer.
3) Hardware implementation in the middle of the project isfact.4) In this model the risk factor is not available.Spiral model: - the spiral model is a step by step process itstresses on the risk factor of the SDLC.The stages of the model are:1) planning2) risk analysis3) development4) customer assessmenta) determine objective alternativeb) evaluative alternative risk analysisc) development and productd) plane for next phaseFrom the above figure we can see that there arefour parts including some loops how ever the number ofloops is not fixed depending on the project. Spiral modelhas a special type of focus on risk factor by which it hasmake some difference from the other model. In this modelthe phases are planning, risk analysis, development andcustomer assessment. From the diagram we can say thatfirst quadrant which representation and make someobject and determine the analysis for a particular project.The next part deals and evaluated some alternative wayby which we can achieve a simple solution. In this phasethe risk analysis is also measured depending on theproject.
Difference between system analysis andsystem designSystem analysisSystem design1) System analysis is theexamination of the problem.1) System design is the creatorof information system whichis solution to the program.2) It is concerned withidentifying all constrains.2) It is concerned with coerudition of the activities for aparticular system goal.3) It deals with data collectionand a datelined evaluation ofexisting file.3) It deals with general designspecification detailed designspecification I/O files andprocedures. It also deals withprogram construction testingand user acceptance.4) In system analysis part themain focus on data flowdiagram and data dictionary.4) It provides technicalspecification and reports bywhich problems can betrapped.
Difference between program andengineering.program1)2)3)4)5)Small project.YouOnce product.CheapFew sequential changes.Engineering1)2)3)4)5)large productteamfamily of productcostlyMany parallel changes.
Module 4System planning1) What is system planning?By the planning in S.E it refers the whole internal and externalworking activities for making particular software. the planning involvesthe software developer and client base future planning from thestarting to the ending phase for making a successful software.The planning depend upon some categorize by which the softwaredevelopment team.2) Data and fact gathering.For making a particular planning the data and fact are most toimportant factors for set up a good plan for the developmentparticular software.For collecting data and fact from the real world. Some techniquesare interviewing, site visit, previous software data gathering and somereal world based examples software to the particular clients.This technique are very essential and important due to original,meaningful and exact right information through which the developer(software project team) for set up there plan for making particularsoftware.3) planning in the view of S.E: In the view of S.E planning is very essential in the view ofcreating implementing, error checking, cost estimation schedule andmaintenance for a particular software. in this part the developmentteam and the project team set a focus for making a particularsoftware for the desired client. The planning has some advantage forthe software developer as well as the user for the particular software.These are:1) interviewing2) communication3) presentation4) site visit
1)Interviewing: - it is the method by which we collect thedata by a specific communication by the software developer andthe customer. It is a face to face approach by which we canassume that what actually customer wants.2)3)Communication:- it refers a technique for building aproject at the start phase. Communication here means dialogbetween two authorities. i.e., software development team and thecustomer from the software company view generally we make ateam for the communication purpose.Presentation: - it can be made from the both side. i.e.,software development team and customer. It is basically atechnique whose we can understand that what actual they deal.4)Site visit: - it is a very important technique for collecting datafor a specific operation. In the site visit a development team visitsthe customer site and tries to understand that what actualoperation they do.
Module 4System design1) Discuss the term of system design: - aftergetting all information regarding making and implementation ofsoftware from system development life cycle or from any sourcewhich helps to build successful software. Design part in view ofsoftware is very important relating to the other issues in thesoftware development process. Design here means that thestructure and all essential steps, which is to be used for makinga particular software. These are implemented with a specificdiagram.In S.E the design part generally controlled the systemanalysis parts which are maintained by the system analyst. In view ofS.E and information SAD, it has two types of specific designa) DFD (data flow diagram).b) ERD (entity relationship diagram)2) What do you understand by design (inview of S.E): -a model or design is an abstractrepresentation of a set of process? Each model represents aprocess and data from a particular perspective model provideperson information about some data and process. The geneticmodels do not contain process description rather it deals withproduct. Different processes are used to develop different partof the model.System design tools are basically in two types.a) System modifying tools (DFD, ERD).b) System design tools (data dictionary, process description).The structured analysis involvesa) Data flow diagram (DFD).b) Data dictionary.c) Process description.
In 1976 chain, introduced the method of data analysis in whichtakes please through out whole development cycle but indifferent degrees in detail. Usually analysis starts early bydeveloping to level conceptual modeling with using somespecific symbols from a modeling method known as entityrelationship analysis. It starts when a DFD is finished.DFD (data flow diagram) - the function or process andthe data items that are exchanged between different function arerepresented in a diagram known as DFD. The program structure isdesigned from its DFD representation. A DFD shows the logical flowof data through a transaction processing system with out regard totime period when each function occurred. They are used in systemdevelopment process. Symbol used in DFD:Listso-external data source or data destination.Internal entity or transformation process.Context diagram: - DFD is a graphical representation ofdata flow. Source process and output are drowning with particularsymbols. How ever the diagram close not contains any process logicor any conditional flow. When a single process connects all datasource with proper arrows. The DFD is called context or zero levelDFD. A context diagram is decomposed into successfully lower levelin detours. These types of DFD are referred as level 1, level 2
Physical DFD: - the first level of details in a DFD in generallycalled a physical DFD. It focuses on physical entities involved in thesystem under study as well as the readable documents reports andother hard copy of input and output.Logical DFD: - it deals with participant to each bottle contain.That indicates a task the system performs. Logical DFD helps thedesigners to decide what system resources are available, whatacuities how to protected control this system after instruction. Contextlevel, DFD for payroll processing system.Time card dataTimeKeepingPayroll changeDataHumanSourcepay checksemployeePayrollProcessingsystemPayroll summersmanagementgovernment agencies
ERD: Definition: -an ERD is a graphical model of informationsystem that describes the relationship among the system entities.ERD is a major data in our project into entities and define therelationship between the entities.Component of ERD: - an ERD has 4 major graphicalcomponents:1st entity: - a data entity is anything read or abstract aboutwhich we want to solve and stored in a particular project for exampleemployee’s books, computers etc.2nd entity: - a data relationship is a natural association thatexists between one or more entities.3rd attribute: - an attribute is a characteristic of anyparticular entity which we can explain in our practical file, for exampleif we consider the entity is an employee, then the attribute areemp name, emp address emp id designation etc.4th cardinality: - it is the specific no of occurrence fromone object to another object or one entity to another entity for aparticular description.Data dictionary: - data flow analysis (DFD) consists of a 4tools. These are:1) data flow diagram2) data dictionary3) data structure diagram4) structure chart
Data dictionary contain the information about the data ofa system. I.e. the data about data or Meta data.A data dictionary is organized into 5 sections:a) Data elementsb) Data flowsc) Data storesd) Processe) External elementsObject oriented design (OOD): - in the objectoriented design the analyst consider and implement theentities in a particular object. In the other design tools, theglobal data base concept has implemented for a particularproject but in the case of OOD the main focus of haring thedata through a massage passing through one to another.In the real world scenario this type of designtools has made its own success. Due to dealing with the objectand the object oriented concept in the specific design method.In the S.E the object oriented design has some specificapproach as a design tool for analyst.Coupling and cohesion: Coupling: - between two methods indicate the degree ofindependence between them. The degree of coupling betweentwo modules depends on their interface complicity. It isbasically determined by no of parameters that are interchangewhile invoking function of a particular module. Depending ontheir interface complicity; following five coupling can occurbetween two modulesdataLowstampcontrolcommoncontenthigh
Classifications of coupling: Data coupling: - two modules are data coupled if theycommunicate using same data item that is passed as a parameterbetween two modules. For example- an integer, a float etc.Stamp coupling: - two modules are stamp couple if theycommunicate using a composite data item. Such as a structure in c,as a record Pascal.Control coupling: - this exists between to modules of datafrom one module is used to direct which helps to execute for anothermodule.Cohesion- it is a measures of the functional strength of a particularmodule. A module having high cohesion and low coupling is said tobe functionally, independent to other module. By term functionalindependence we mean that a cohesion module performs a singletask for a single function. We use cohesion due to following lesion1) error ideation2) scope of reuse3) understandabilityClassification of cationalSequentialfunction
Module 5System documentationIn s/w we can the basic two factors these are 4p’s concept and 4w’sconcept4p’s- people process, product and plan4w’s- who, where, what, when.Documentation is a serial part in the S.E method of for making itsown success for internal and external users. Documentation refersthe whole process relating to the operation, use component Tecknowledge and other information relating to particular software.Types of documentation: - in broad of view thedocumentation can be classified in two typesa) internal documentationb) external documentationIn external documentation it can be again directed in 7parts:1) management documentation2) system documentation3) operational documentation4) user documentation5) program documentation6) training documentation7) implementation documentationInternal documentation refers the internal work process likecoding, programming, structure which helps softwareanalyst and programmer.The external documentation deals with the user manual andother related information for particular plan (customer).
1)User documentation: - it refers the whole user detailsfor particular software and something it refers how the are goingon in a particular software.2)Programming: - these types of documentation help theprogrammer and other system level manager to directly orindirectly involve with programming structure.3)System: - the goals of to focus on the software as well ashardware component in which particular software run. It has somespecific features like system overview, SRS, design, test andimplement.4)Management: - it is used for the upper level manager andits contains the whole work project plan including time and cost fora software.5)Operational: - it maintains the internal working processincluding some problem solution for the customer. It is a basicallya guest of how to use the software to the client.6)Training: - it basically is a summarized from for trainingpurpose and user guideline of a software. it helps for the trainingpurpose people who wants to use a particular software in theirspecific application.7)Implementation: - it generally helps to internal process. Itdescribes how the software will be implementing in a particularsystem. This document is very important for software developerand customer of how the software implements and run for aspecific purpose.
System documentation: - it has the following featuresfor its own its:1) system overview2) SRS3) Specification/design/implementation4) Test plan5) Data dictionary6) Acceptance of test plan.1)System overview: - it is very important step for makingparticular software for the software developer. System overview is apart of the documentation for use specific software. it has somesoftware as well as some hardware information which is used forthe software developer.2)SRS: - it is important features for the system documentation. Ithas some specific goals which help for making particular software.3)Specification/design/implementation: - thepart deals with the system analyst that describe how to use, how toimplement, how to make and how to make maintain the particularsoftware including design phase.4)Test plan: - it refers the hole works must be tested with somespecific steps and parameters for deciding correctness for aparticular work.5)Data dictionary: - it contain data about data (Meta data)this data’s are useful for implementation from the coder side.6)Acceptance of test plan: -this feature include in thesystem documentation part to know whether the designimplementation and progress is accepted by designer developerand some time for user.
Principles of system documentation: - it hasthe following specific features. This are1) availability2) objectivity3) cross referencing4) easy to maintain5) completeness1)Availability: - it refers the documentation should beavailable for the analyst, developer and the user. In right please atright time.2)Objectivity: -3)Cross referencing: - it determines for internalthe objectivity must be focused and clear whoare making the documentation for its specific use. Objectivity refersthe original method for making particular software.communication between to or more module. This feature includesthe internal relational ship between the modules.4)5)Easy to maintain: -after complete the documentationsome times it refers in future it may be changed at this time thedocumentation should be worked properly and correctly.Completeness: - it refers the all phase including design,coding, testing, user manual. This must be included for making thedocumentation successful and complete.
Module 6Coding and programmingThe main object of coding is to implement the design with the help ofsome programming environment to achieve a specific task. Afterwriting the code we have to go through the error checking part to runthe code successfully. After that the code and the design part wehave to match those we the original output we may get from theoriginal code.Coding techniques helps to increase the cast of thesoftware in the error handing part and the implementation part.Choice of programming language: - to achieve theparticular software design output in the real world the coder has tochoice. Some programming language with some specificprogramming environment for this we have to know very well thefollowing objectives in the software coding part1) Understand very well the design approach.2) Enough knowledge of programming and environment.3) Select a programming language to achieve a specific task forclient.4) Understand the original cost and coding part in the real worldscenario.Basically we have two types environment available insoftware industrya) structured programmingb) object programmingThe both programming environment has some specific norms in itsown area. For example the structured programming environment dealswith some specific function with its own parameter an OOP environmentbased on the objectives which is sharable from method to another.Mixed language programming: - it is basically a integrated approach forthe software coder to direct and indirect they can change theenvironment as it required at the time of operation.
The environment helps the customization for a specific softwaredesign and it is very under friendly environment for user. For exampleERD these type of software like SAP Microsoft lavation. This type ofsoftware as some mixed programming language environment. Whichhelps the coder as well as the user?Coding structure: - whenever the programmer writes somecodes from the design view. He/she has peach a programmingenvironment achieved the desired goal. Depending programminglanguage and environment we have to follow norms and syntax of thatprogramming environment coding principle are –1) construct the algorithm2) select the data structure that will meet the need of design,3) understand software architecture and create a specific interface,4) keep conditional knowledge as simple as possible,5) create nested loop that marks their easily testable,6) select meaningful variable and follow other local codinginstruction,7) write code that is self documenting,8) Create a visual laired for easy understanding.
Module- 7System testingDefinition of testing: - according to Myers (1979) testingis technique of software to find the error or mistake in a particularsoftware design.The term over we can define as some unconditional or conditional,direct or indirect mistakes from our design phase to implementingphase in particular software area. In testing the main fault and failureare two main corresponding factors in testing. Fault is a condition forrequired achievement of a specific function where as failure is theinability to achieve a desired goal.Software testing is a very essential part in S/E to make a productsuccess. Its basic objective for checking all parts connecting througha specific project.Types of testing: TestingUnit1) ad hope2) black box2) white boxintegration1) top down2) bottom up3) regression4) Smokesystemacceptanceperformance, stress,volume, configuration, regression,recovery, maintenance, alphatesting, beta-testing, compatibility,And documentation.Unit testing: - in testing methodology first testing is unit testing. It hasbasically three parts a hope testing, white box testing, black boxtesting.
Ad hope testing: - in ad hope testing we can test whatever comes inmind for a specific testing. It is sometimes called random testingprocess. In this technique the scope and limitation of software isabsent.White box testing: - in white box testing the structure of the code. Wecan test without logic. In code segment white box testing are basicallyin 7 types: 1) segment testing (each segment to control structure)2) branch coverage or node testing (each blank)3) basis path testing (predetermined path setting)4) compound condition coverage (or, and)5) data flow testing (variable data flow)6) path testing (all paths are covered or defined)7) Loop testing.Black box testing: - this type of testing for unknown logic structure –in this the function oriented modules are tested; it includes thefollowing activities 1) error crossing2) equivalence class classification3) boundary value analysis4) cause and effect graphic5) domain testing6) module interface testing7) Command line testing.Integration testing: - in the integration testing when weuse more than one environment to perform software then useintegration testing. In this it has basically 4 parts1) top down testing2) bottom up testing3) regression testing4) smoke testing1) Top down testing: - in this test each module or class fromthe top level of program segment and after that we can add thefirst one to next and continue this process until completemodule check.
2) Bottom up testing: - in this testing it is a reserve case of todown testing but a simple difference is that this does not allowto integration the tested modules from bottom up.3) Regression testing: - this type of testing define and examinewith some existing function and future achievement goal inspecific software regression testing allows the softwaredevelopment team to ensure that the existing functions andother modules whether they can use for their coming project ornot.4) Smoke testing: - it defines the testing approach where we canimplement and test each and every module and function withthe existing project. This type of testing approach is basicallyneeded. When we need to build up a long term project. Insideof project if software development team wants to test somepart of code or module they may up through smoke testing.System testing: 1) Performance testing: - carried out to check weather systemmeets the non functional requirements in SRS documents.2) Stress testing: - this type of testing help to evaluate the systemperformance when it is stressed for a sort period of time.3) Volume testing: - this type of testing helps to check weatherdata structure, stack, array queue etc. has been classingsucc
Why software engineering:- 1) In the late 1960’s hardware price were falling but software price rising. 2) Many software projects failed. 3) Large software project required large development loams. 4) Many software project late and over budget. 5) Complicity of software project is increased. 6) Demand for new software on the market.