0% found this document useful (0 votes)
190 views

Se - Chapt 1

The document discusses different aspects of software engineering. It defines software and its dual role as a product and vehicle for delivering products. It describes the characteristics of software such as being engineered rather than manufactured and not wearing out in the same way as hardware. The document outlines different software development process models including waterfall, incremental and rapid application development (RAD) models. It explains how each model maps to the generic framework activities of software engineering.

Uploaded by

Master
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX or read online on Scribd
0% found this document useful (0 votes)
190 views

Se - Chapt 1

The document discusses different aspects of software engineering. It defines software and its dual role as a product and vehicle for delivering products. It describes the characteristics of software such as being engineered rather than manufactured and not wearing out in the same way as hardware. The document outlines different software development process models including waterfall, incremental and rapid application development (RAD) models. It explains how each model maps to the generic framework activities of software engineering.

Uploaded by

Master
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX or read online on Scribd
You are on page 1/ 43

Prepared By R.Senthil Kumar,Asst.

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.
`

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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 .

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

Software does not wear out, However


it deteriorates (go down) due to change. Software is custom built rather than assembling existing components. -Although the industry is moving towards component based construction, most software continues to be custom built

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

Failure rate

Infant
mortality Wear out

Time

Fig: FAILURE CURVE FOR HARDWARE


Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

Fig: FAILURE CURVE FOR SOFTWARE


Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

` ` `

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.

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

Fig: Software Engineering-A layered technology

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

`
`

Any Engineering approach primary focus is Quality


Quality focus - Bedrock that supports software Engineering is quality focus Process layer is - Foundation for software Engineering - Process defines a framework -- The software process forms the basis for management control of software projects

-- 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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

Tools - Provide automated and semi automated support for the process and methods called as CASE Tools

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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.

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

Common process framework Framework activities TTTasks Milestones,delierables SQA points Umbrella activities

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

` `

` `

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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

Communication Project initiation requirement gathering

Planning
Estimating Scheduling tracking

Modeling
Analysis design

Construction
Code test

Deployment
Delivery Support feedback
21

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

` ` ` `

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

23

Software functionality and features

Communication Planning Modeling Construction Deployment


Increment#2

Increment # n
Communication Planning

Modeling
Analysis design

Construction
Code test

Deployment
Delivery Support feedback

delivery of nth increment

Communication Planning

Modeling

Increment # 1
Communication Planning

Analysis design

Construction
Code test

Deployment
Delivery Support feedback

Delivery of 2nd increment

Modeling
Analysis design

Construction
Code test

Deployment
Delivery Support feedback

delivery of 1ST increment

Project calendar time


Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET 24

` ` ` ` `

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

` `

` `

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 .

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

` ` ` `

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

Team # n
Modeling
Business modeling Data modeling Process modeling

Construction

Team # 2 Communication Modeling


Business modeling Data modeling Process modeling

Component reuse automatic code generation testing

Construction

Planning

Team # 1 Modeling
Business modeling Data modeling Process modeling

Component reuse automatic code generation testing

Deployment
integration delivery feedback

Construction
Component reuse automatic code generation testing

60 90 days R.Senthil Prepared By


Kumar,Asst.Pof,MCA,RGCET

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

` ` `

` `

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

Evolutionary Models: Prototype


Communication Quick Plan Modeling Quick design

Deployment delivery & feedback

Construction of prototype

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

` ` `

` `

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

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

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

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
`

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

THE CONCURRENT DEVELOPMENT MODEL


Also called concurrent engineering Constitutes a series of framework activities, software engineering action, tasks and their associated states All activities exist concurrently but reside in different states Applicable to all types of software development Event generated at one point in the process trigger transitions among the states

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

Prepared By R.Senthil Kumar,Asst.Pof,MCA,RGCET

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy