Se - Chapt 1
Se - Chapt 1
Pof,MCA,RGCET
What is it? Computer s/w is the product that s/w professional build and support over the long time. it Encompasses Programs and architecture and documents in both hard copy and all forms of electronic media. Who does it? Software Engineers build and support it.
`
Dual role of Software A Product - Information transformer-(either in cellular Or main frame computer) producing, managing and acquiring , modifying and displaying or transmitting information A Vehicle for delivering a product - s/w acts as the basis for the Control of the computer(operating system),the communication of information(networks) and the creation of other programs
Software is defined as
1. Instructions
- Programs that when executed provide desired features, function and performance 2. Data structures -Enable the programs to adequately manipulate information 3. Documents -Describe the operation and use of the programs.
Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET
` `
To gain understanding of s/w ,it is important to examine the characteristics of s/w Software is developed or engineered, it is not manufactured in the classical sense. - some similarities exist between s/w development and H/W manufacturing , the two activities are fundamentally different . In both activities, high quality is achieved through Good Design but the manufacturing phase for H/W can introduce quality problems that are non existent for S/w .
Failure rate
Infant
mortality Wear out
Time
` ` `
Another aspect of wear illustrate the difference between H/W & S/W . when the H/W components wears out, it is replaced by spare part. There are no software spare parts. Every software failure indicates an error in design or in the process through which design was translated into machine-executable code. Therefore, s/w maintenance involves considerably more complexity than H/W maintenance.
Software Engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machine - SE is a layered technology. Refereeing to following fig
`
`
-- and establishes which technical methods are applied, -- which work products( models, documents, data, reports, forms, etc) are produced, quality ensured, milestones are established
Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET
Method - SE methods provide the technical how to building software - Methods encompasses Communication Requirement analysis design Modeling Program construction Testing & support
Tools - Provide automated and semi automated support for the process and methods called as CASE Tools
Establishes the foundation for a complete software process Identifies a number of framework activities applicable to all software projects Also include a set of umbrella activities that are applicable across the entire software process.
Common process framework Framework activities TTTasks Milestones,delierables SQA points Umbrella activities
16
` `
Each framework activities is populated by set of SE actions collection of related tasks Each action is populated with individual work task The following generic Process framework is applicable to the vast majority of software projects
` `
` `
Communication Heavy communication and collaboration with the customer Planning plan for the SE work that follows it describes technical task to be conducted, resource required, work schedule Modeling- creation of models that allow the developer and the customer better understand software requirements construction Deployment- s/w delivered product customer who evaluates the delivered product
Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET
Help in the software development Guide the software team through a set of framework activities Process Models may be linear, incremental or evolutionary
Used when requirements of a problem are well understood in the beginning ` When Workflows from communication through deployment in a reasonably linear fashion. Ex enhancement of existing system ` Also called classic life cycle ` A systematic, sequential approach to Software development ` Begins with customer specification of Requirements and progresses through planning, modeling, construction and deployment
`
Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET
This Model suggests a systematic, sequential approach to SW development that begins at the system level and progresses through analysis, design, code and testing
Planning
Estimating Scheduling tracking
Modeling
Analysis design
Construction
Code test
Deployment
Delivery Support feedback
21
` ` ` `
Real projects rarely follow the sequential flow since they are always iterative The model requires requirements to be explicitly spelled out in the beginning, which is often difficult A working model is not available until late in the project time plan so the customer must have patience. Waterfall model leads to Blocking States some project team members must wait for other members of the team to complete dependent task Useful when requirements are fixed, work flow in a linear fashion
22 22
` ` `
` `
Linear sequential model is not suited for projects which are iterative in nature Incremental model suits such projects Used when initial requirements are reasonably well-defined and compelling need to provide limited set of software functionality to user quickly Then Refine and expand on that functionality in later software release Software is developed in increments
23
Increment # n
Communication Planning
Modeling
Analysis design
Construction
Code test
Deployment
Delivery Support feedback
Communication Planning
Modeling
Increment # 1
Communication Planning
Analysis design
Construction
Code test
Deployment
Delivery Support feedback
Modeling
Analysis design
Construction
Code test
Deployment
Delivery Support feedback
` ` ` ` `
The increment model combines the elements of waterfall model applied in a iterative fashion Incremental model applies linear sequence in a staged fashion Each linear sequence produce deliverable increments of the software Ex. Word processing software 1, basic file management,2 sophisticated editing, 3 spelling and grammar checking, 4 advanced page layout
` `
` `
The first increment is a core product that is Basic requirements are addressed, but many features remain undelivered The core product is used by the customer and undergoes detailed evaluation by the customer As a result, plan is developed for the next increment Plan addresses the modification of core product to better meet the needs of customer and delivery the additional features and functionality Process is repeated until the complete product is produced
Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET
The incremental model is useful when staffing is unavailable for a complete implementation by the business deadline .
` ` ` `
Rapid application Development(RAD) is an incremental software process model RAD model is High speed adaption of waterfall model Rapid development is achieved by using a component based construction approach. If the requirements are well understood and project scope is constrained, the RAD process enables a development team to create a fully functional system, within short time period(60-90 days)
Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET
` ` ` ` ` `
The RAD approach maps into the Generic framework activities Communication works to understand the business problem Planning is essential because multiple software teams works in parallel on different system functions Modeling business modeling, Data modeling, Process modeling Construction use of pre existing s/w components, automatic code generation Deployment establish a basis for sub sequent iterations
Team # n
Modeling
Business modeling Data modeling Process modeling
Construction
Construction
Planning
Team # 1 Modeling
Business modeling Data modeling Process modeling
Deployment
integration delivery feedback
Construction
Component reuse automatic code generation testing
30
RAD requires sufficient Human resource to create the right number of RAD teams(For large s/w) Requires commitment from both developer and customer for rapid-fire completion of activities If high performance is an issue, the RAD approach is not work Not suited when technical risks are high
` ` `
` `
Software evolves over period of time Business and product requirements often change as development proceeds, A set of requirements is well understood, but the details of a product or system extensions have yet to be defined. In these and similar situation, Software Engineers need a process model to accommodate a product that evolves over time Evolutionary models are iterative Enables the software Engineers to develop increasingly more complete version of the s/w Types of evolutionary models
Prototyping Spiral model Concurrent development model
Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET
` `
Customer defines a set of general objectives for s/w, but does not identify detailed input, processing, or output requirements In other case, the developer may be unsure of the efficiency of an algorithm, adaptability of OS, form of Human machine interaction should take place For these - Prototyping is the best approach - it is applied to any s/w process model The prototyping paradigm assist the s/w engineer and customer to better understand what is to be built when requirements are fuzzy
Construction of prototype
34
Prototyping Begins with communication- software engineer and customer meet and define the overall objectives for the software
Identify whatever requirements are known Outline areas where further definition is mandatory A quick design and modeling occur Quick design focus (those aspect of the s/w that is visible to the customer) human interface layout or output display formats Quick design leads to the construction of prototype Prototype is evaluated by the customer Requirements are refined Prototype is turned to satisfy the needs of customer and enable the developer to better understand what need to be done
Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET
-
` ` ` `
Prototype serves as a mechanism for identifying software requirements If a working prototype is built, the developer attempt to make use of existing program fragment or applies tools(ex. report generators, window managers ect) That enables working programs to be generated quickly
In a rush to get it working, overall software quality or long term maintainability are generally overlooked Use of inappropriate OS or PL Use of inefficient algorithm
` ` `
` `
Using the spiral model, Software is developed in a series of evolutionary releases. During the early iteration , the release might be a paper model or prototype During the Later iteration, increasingly more complete version of the engineered system are produced. Spiral model is divided into set of framework activities(Generic framework ) Each framework activities represent one segment of the spiral path. as shown in fig
Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET
` `
As the evolutionary process begins, the software team performs activities by a circuit around the spiral in a clock wise direction, beginning at the center An evolutionary model which combines the best feature of the classical life cycle and the iterative nature of prototype model Include new element : Risk element (concerns future
happenings)
Starts in middle and continually visits the basic tasks of communication, planning, modeling, construction and deployment
Realistic approach to the development of large scale system and software ` Software evolves as process progresses ` Better understanding between developer and customer and react to risks at each level ` The first circuit might result in the development of a product specification ` Subsequent circuits develop a prototype And then progressively more sophisticated version of software
`