SlideShare a Scribd company logo
1 of 10
Download to read offline
SEN2-Software processes
           Group 1:

         Vadim Emrich

         Lukas Bäcker
Content
Software process..........................................................................................................................................3
Software process models..............................................................................................................................3
   Waterfall model........................................................................................................................................3
   Evolutionary Development.......................................................................................................................3
   Component Based Software Engineering.................................................................................................3
Process iterations and process activities......................................................................................................3
   Incremental development........................................................................................................................5
              Pros:..............................................................................................................................................5

              Cons:.............................................................................................................................................5

   Spiral development...................................................................................................................................6
Process activities..........................................................................................................................................6
   Software specification..............................................................................................................................6
   Software-design and –implementation....................................................................................................6
   Software-validation and –verification.......................................................................................................7
   System maintenance................................................................................................................................8
Software models...........................................................................................................................................8
Conclusion....................................................................................................................................................8
SEN2                                                –                                  Software processes




Software process
According to developing software, there are a lot of things that possibly can go wrong. The sooner an
error occurs that has not been recognized, the higher is the amount of aftereffects. An important reason
for that fact is that developer lose track of controlling their software development. Obviously the
production of a software program, whether it has to be completely new or not, is that complex, that you
necessarily need a well-structured planning. That kind of planning is called software process. A software
process results in the creation of a software product.

Although many organizations, which deal with software development, enormously differ from each other
the way they do this work, there are also fundamental similarities. These similarities are specification,
design and implementation, validation and evolution of software. The specification of software names
its restraints of usage, and the role the software is intended to. Furthermore evolution of software means
that the software has to be made able to make progress. In short software has to be customizable.

As already mentioned, there is no "best" software process. But standardization reduces the amount of
possibilities and results in improvement (also of communication). Another advantage of standardization
is the possibility to support the software process by automation.


Software process models
A Software process model or process paradigm is an abstraction of a software process and each has its
individual view to a software process. From this it follows that each Software process model shows only a
fraction of the software process.

There are many common models for being extended or matched. But exclusively 3 of them are described
in the following. They are called "waterfall model", "evolutionary development" and "component based
software engineering".

The waterfall model is characterized by separation of the elementary process sequences "specification",
"development", "validation" and "progress making". In contrast to that, the evolutionary development
combines "specification", "development" and "validation". The component based software engineering
differs from both models ahead: its issue is to reuse components that already exist to integrate them to a
new system.

Although distinguishing these three models, they are often used in combination. The Rational Unified
Process does so. But also the formal development process is a form of such a combination. An example
for that is the Cleanroom-process which expects to specify all primal cuts mathematically for being
implemented by that later on.

There is no doubt for the importance of using a software process model when developing software. But
why do we need a software process model? To underline that, think of a hypothetical software project
where you do not use such a model. The development process might become bad structured, which
leads to a number of further problems. Those problems can be unstructured code and bad or even no

                                                                                                  Page | 3
code documentation and so to solve occurring errors can take a lot of time, because you have to
intensively search in the code. It is not only the fact, that time costs money, but if you often need more
time than you expected to, the possibility to pass the deadline increases. And being aware of increasing
time pressure supports increasing stress pressure. Of course software development under too hard stress
cannot result in a qualified product. Indeed the worst case is if the product does not match with the
customer's expectations.




Waterfall model
The waterfall model is divided into 5 phases: "requirement analysis and definition", "design of system
and software", "implementation and testing components" and "operation and maintenance".

While the first phase developers define the system specifications in detail by working with the system’s
users. The second phase is about finding a basic abstraction of the system’s architecture, its components
and relations between components. Next step is to implement the components and test them in the
third phase. That leads to the fourth phase to implement the components’ relations and test the whole
architecture. The following step is to deliver the software for usage. At last the fifth phase is about
removing errors from the software that occur while its usage.

Each phase leads to a different phase. But for entering a new one, the current one has to be finished.
That means for example that produced documents must have been reviewed. Having entered the new
phase, problems based on the phase before can be found by interchange of information between both
phases. A little different to that the last phase which is for evaluating the software that resulted from the
previous phases. At least one of them has to be repeated, whether the software result does not correlate
to the expectations of the customer. For using the waterfall model sensible, those expectations should be
fixed before starting and should not change while working on the software. In a different case, the
waterfall model does not make any sense, as the condition to comply the separation of phases does not
leave any space for customization meanwhile.



Evolutionary Development
The evolutionary development is based on a sketched implementation that should make the customer
say which parts make him satisfied and which not. Next step is to customize the implementation to that
and let the customer re-evaluate the implementation. Gradually, the reiteration of these steps, lead to a
product that more and more matches with the customer's expectations. In this case, there are two ways
of evolutionary development: "explorative development" and "throw-away prototype development". The
goal of the explorative development is to create a final software product the way described above. In
contrast to that, the throw-away prototype development the goal is to understand the customer's
expectations in detail. As soon as the prototype is complete, the developers start to create the final
software product.

But there are two disadvantages for managing a project when using the evolutionary development: As
there are changes in the software again and again while the development process is alive, the possibility
SEN2                                                 –                                  Software processes


that the software architecture is worse structured is very high. So doing a change afterwards might take
much time and is expensive. Furthermore in this case a highly-qualified software-documentation is too
expensive. In general this means that the evolutionary development does only make sense, if the size of
the project is nearly small.




Component Based Software Engineering
The component based software engineering (CBSE) is that structured, that the realization of a new
system consists of the integration of many standardized components that had already been completed.

There are six steps involved to CBSE: "specification", "analysis of components", "adapt to specifications",
"design with reuse", "development and implementation" and "validation of the system". Both the first
and the last step can be found in other processes, too. But the rest differ: the second step is about
finding components to comply the specification. The third step is for analyzing, how the specifications
have to be adapted to the chosen components. The forth step is for designing a system from the
specifications with the chosen components. If there is a need to produce a new component, it has to be
done by then. While the fifth step the software parts that do not exist for the system have to be
implemented.

There are many reasons for developing software by using CBSE: If you nearly never have to produce
completely new software, the costs decrease and the amount of errors is low. But the standardization
also makes it more possible, that individual expectations of a customer cannot be matched.




Process iterations and process activities
Like in all bigger software projects, changes are ineluctable. Changes will occur in dimensions the
company, which commissioned the software, reacts on the external environment. Some company
process changes or technology changes could take effect on the created design or implementations in a
way that these have to be changed. Software processes are never fixed and the process activities have to
be repeated regularly to adopt changes. At this point you need iterative development where you repeat
processes or iterate processes. There are two common process models existing for these iterating
processes. The incremental development and spiral development are these models which will be
described later.
An important part of iterative processes is the fact that the specification and the software itself are
developed simultaneously, so the most companies and business models disagree with this type of model.
They need a complete specification of the system but while the system is developed with an incremental
method there is no complete specification, so they need a new contract, which bigger companies in most
cases don’t like.




                                                                                                   Page | 5
Incremental development
In a waterfall model you have to create requirements in the beginning of the development process and
you cannot change them in a later progress. Actually you need them before you have started with the
design. So if you are in al further progress of development and you have to change some requirements,
you maybe have to repeat the whole development progress. The distinction between design and
implementation leads to an exact documentation, for this an evolutionary method leads to badly
structured and complex software but you can make decisions at one’s leisure. An incremental
development tries to combine the pros of both. In the beginning of the development progress you decide
some chunky requirements, also which are important and which are not. In the next step you decide
which parts or increments of a system have to be delivered. The parts, which have a higher priority, will
be delivered first. In the last step you also have dedicated the increments to the requirements. In the
next step you design system architecture and begin with the development of the first subsystem. You also
validate and integrate this subsystem to the whole software system and validate that one. In the end of
this cycle you check if your system if complete or not. If it’s not than you have to proceed to the next
subsystem and begin with the implementation of this one.




Pros:
   - Customer don’t has to wait for a complete system

    -   Customer could test early stages of the program with prototypes

    -   Less risks of getting a failed project

    -   Because of developing the important subsystems first they will be tested more often and will get
        the most attention

Cons:
   - Difficult to detect functions early, which will be used by many subsystems
SEN2                                                  –                                   Software processes



Spiral development
Another incremental development process is the spiral development process. The activities aren’t shown
in a series but rather the whole software process is shown like a spiral.




Each turn is a phase of the process. The inner turn is about the base software concepts, the next turn is
about definition of requirements, and the next is about system design et cetera. The whole model is
divided into four segments.

    -   Determine objectives: determine special goals, basic conditions, management plan and risks

    -   Identify and resolve risks: analyze each risk and initiate steps to resolve these risks

    -   Development and Test: select the right development model depending on your basic risks and
        begin with development and validation

    -   Plan the next iteration: check your project if you could proceed to the next turn of the spiral.

The basic difference between the spiral model and different models is that the spiral model concentrates
on risks.




                                                                                                    Page | 7
Process activities
There are four basic process activities. These are specification, development, validation and
maintenance. Depending on which process model you use these activities are performed one after
another, like in a waterfall model, or concurrently, like in an evolutionary development.

Software specification
Software specification or requirements analysis means that you analyze and try to understand
constraints, functions and requirements the system has during development and in customer practice.
This part of the whole development process is the most important because mistakes in the analysis lead
to problems in design and implementation phase. The main analysis is split into four main steps:

    -   Operability research: Here you determine if you can fulfill the requirements of the customer
        with today’s software- and hardware-technologies and if it’s cost-effective. Here you decide if
        you should continue with a further analysis.

    -   Definition and analysis of Requirements: Upon discussions with customers and observation of
        existing systems you can create different software models and prototypes. This helps the analyst
        to understand the system.

    -   Specification of requirements: Collect all information into a document. This specification contains
        functional and non-functional requirements.

    -   Validate requirements: Check if your requirements are realistic, consistent and complete.

Software-design and –implementation
In this phase you create a specification into an executable system. You use design- and programming-
activities, but if you are using an evolutionary method you may change the specification. In design
activities you describe the structure of a system, the data and interfaces. This design document will be
developed iterative over many versions. The separate activities in a design process are:

    -   Architecture design: Define subsystems and their relationship.

    -   Abstract specification: Create for each subsystem an abstract specification.

    -   Interface design: Define for each interface a specification.

    -   Component design: Allocate components to services and design their interfaces.

    -   Data structure design: Specify data structures which are used in the system.

    -   Algorithm design: Specify algorithms for the services.

This is an abstract model of the design phase which is not fixed and could be adapted in praxis.
In agile development methods results aren’t separate specification models, but rather shown in program
code. If you use structured development methods you may use these models to design the software:

    -   Object model
SEN2                                                 –                                 Software processes


    -   Sequence model

    -   State model

    -   Data flow model

All these models help you to understand and implement the system. Some classes are maybe specified
and designed in more detail than other and you can maybe use CASE-tools to generate program code
from design models. In the last part you test your created code for correct function. For this you need to
find at first the error, and then plan how to resolve the error, resolve the error and test your program
again.

Software-validation and –verification
The verification and validation should show that all specifications are implemented and are implemented
proper. During the whole development process you should test and check your results for correctness but
the most validation costs occur after the implementation.
Beside small programs you shouldn’t test the whole system at once. First you should test each
component separately then in combination with other components until you can test it with the
customer. If you found some errors and resolved them you maybe have to repeat some subtest to
guaranty correct behavior.
In general component implementation and testing are connected and done simultaneously. In an
incremental development model you do testing during the development phase, while in extreme
programming you design tests during the analysis phase what leads to a test-driven development.
In later test phases you should implement the planned tests by a special test team. To connect the test
activities and development activities you can use the V-Model.




                                                                                                   Page | 9
System maintenance
In bigger systems it’s very expensive to make changes at hardware. Software changes aren’t so expensive,
so you could make these at any time. Even serious software changes are cheaper than hardware changes.
In the past the development part and the maintenance where strictly separated. Development was more
esteemed than maintenance, although maintenance was multiple times costly than development
process. Nowadays this partition will become more and more unimportant, because developed software
systems aren’t often complete new systems, so the engineering process becomes more and more an
evolutionary process and combines both.

The process of maintenance works like shown in this diagram.




Software models
Software models describe a software system in a graphical model and are used to design a software
system by means of a structured method. These models maybe are object-models, sequence-models,
state-models and many others. The most used models are defined in UML (UML 2.0). They help you to
create a traceable design, but the creativity of the developers will be furthermore required. They still
have to split the system and make sure they follow the specification.


Conclusion
We as software engineers intend to produce software that is usable, changeable, and it preferably has a
low price. As producing software is complex and there are lots of ways to do that, it is an improvement to
standardize this process in form of a software process model. Supporting the development of software by
a software process model improves communication of engineers and helps to control the process. In
General a software process model can make it easier to develop software.

More Related Content

What's hot

Ch03-Software Engineering Model
Ch03-Software Engineering ModelCh03-Software Engineering Model
Ch03-Software Engineering Model
Bala Ganesh
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
Ammar Shafiq
 
962 sech04
962 sech04962 sech04
962 sech04
aldwal
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
Bala Ganesh
 
Software engineering
Software engineeringSoftware engineering
Software engineering
faisalwajid
 

What's hot (20)

Ch03-Software Engineering Model
Ch03-Software Engineering ModelCh03-Software Engineering Model
Ch03-Software Engineering Model
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
 
Software process model
Software process modelSoftware process model
Software process model
 
Cs504 handouts 1_45
Cs504 handouts 1_45Cs504 handouts 1_45
Cs504 handouts 1_45
 
Software models
Software modelsSoftware models
Software models
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
962 sech04
962 sech04962 sech04
962 sech04
 
software process model
software process modelsoftware process model
software process model
 
Software Engineering - Lecture 01
Software Engineering - Lecture 01Software Engineering - Lecture 01
Software Engineering - Lecture 01
 
Swe notes
Swe notesSwe notes
Swe notes
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Mvc architecture driven design and agile implementation of a web based softwa...
Mvc architecture driven design and agile implementation of a web based softwa...Mvc architecture driven design and agile implementation of a web based softwa...
Mvc architecture driven design and agile implementation of a web based softwa...
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
01lifecycles
01lifecycles01lifecycles
01lifecycles
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
CSC426 - Software Engineering Lecture Note
CSC426   - Software Engineering Lecture NoteCSC426   - Software Engineering Lecture Note
CSC426 - Software Engineering Lecture Note
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Notes on software engineering
Notes on software engineeringNotes on software engineering
Notes on software engineering
 

Viewers also liked

03 Perioperative Renal Failure In Cardiac Surgery
03 Perioperative Renal Failure In Cardiac Surgery03 Perioperative Renal Failure In Cardiac Surgery
03 Perioperative Renal Failure In Cardiac Surgery
guest2379201
 
Owf 2013 rii moose speaker 2
Owf 2013 rii moose speaker 2Owf 2013 rii moose speaker 2
Owf 2013 rii moose speaker 2
Patrick MOREAU
 
Financial Services Cluster
Financial Services ClusterFinancial Services Cluster
Financial Services Cluster
Claudia
 
07 Mato Acute Renal Failure
07 Mato   Acute Renal Failure07 Mato   Acute Renal Failure
07 Mato Acute Renal Failure
guest2379201
 
Sen2 Software Processes
Sen2 Software ProcessesSen2 Software Processes
Sen2 Software Processes
MatzeAtFontys
 
Control%20of%20 Breathing
Control%20of%20 BreathingControl%20of%20 Breathing
Control%20of%20 Breathing
guest2379201
 
Control Of Respiratory Function
Control Of Respiratory FunctionControl Of Respiratory Function
Control Of Respiratory Function
guest2379201
 
Respiratory System
Respiratory SystemRespiratory System
Respiratory System
guest2379201
 

Viewers also liked (9)

03 Perioperative Renal Failure In Cardiac Surgery
03 Perioperative Renal Failure In Cardiac Surgery03 Perioperative Renal Failure In Cardiac Surgery
03 Perioperative Renal Failure In Cardiac Surgery
 
Owf 2013 rii moose speaker 2
Owf 2013 rii moose speaker 2Owf 2013 rii moose speaker 2
Owf 2013 rii moose speaker 2
 
Financial Services Cluster
Financial Services ClusterFinancial Services Cluster
Financial Services Cluster
 
07 Mato Acute Renal Failure
07 Mato   Acute Renal Failure07 Mato   Acute Renal Failure
07 Mato Acute Renal Failure
 
Sen2 Software Processes
Sen2 Software ProcessesSen2 Software Processes
Sen2 Software Processes
 
Control%20of%20 Breathing
Control%20of%20 BreathingControl%20of%20 Breathing
Control%20of%20 Breathing
 
Control Of Respiratory Function
Control Of Respiratory FunctionControl Of Respiratory Function
Control Of Respiratory Function
 
Respiration
RespirationRespiration
Respiration
 
Respiratory System
Respiratory SystemRespiratory System
Respiratory System
 

Similar to Sen2 Software Processes

Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdf
VikasRai405977
 
Software Engineering in a Quick and Easy way - v1.pdf
Software Engineering in a Quick and Easy way - v1.pdfSoftware Engineering in a Quick and Easy way - v1.pdf
Software Engineering in a Quick and Easy way - v1.pdf
KAJAL MANDAL
 

Similar to Sen2 Software Processes (20)

Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdf
 
SE-Lecture-4.pptx
SE-Lecture-4.pptxSE-Lecture-4.pptx
SE-Lecture-4.pptx
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
Sdpl1
Sdpl1Sdpl1
Sdpl1
 
SE-Lecture-2.pptx
SE-Lecture-2.pptxSE-Lecture-2.pptx
SE-Lecture-2.pptx
 
16346915.ppt
16346915.ppt16346915.ppt
16346915.ppt
 
Software process life cycles
Software process life cyclesSoftware process life cycles
Software process life cycles
 
SDLC Model
SDLC  ModelSDLC  Model
SDLC Model
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
Soft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxSoft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptx
 
SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
Session3
Session3Session3
Session3
 
Chapter 2.pptx
Chapter 2.pptxChapter 2.pptx
Chapter 2.pptx
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and design
 
Software Engineering in a Quick and Easy way - v1.pdf
Software Engineering in a Quick and Easy way - v1.pdfSoftware Engineering in a Quick and Easy way - v1.pdf
Software Engineering in a Quick and Easy way - v1.pdf
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Chapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.pptChapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.ppt
 

Recently uploaded

Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
MateoGardella
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
Chris Hunter
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
SanaAli374401
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 

Recently uploaded (20)

Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 

Sen2 Software Processes

  • 1. SEN2-Software processes Group 1: Vadim Emrich Lukas Bäcker
  • 2. Content Software process..........................................................................................................................................3 Software process models..............................................................................................................................3 Waterfall model........................................................................................................................................3 Evolutionary Development.......................................................................................................................3 Component Based Software Engineering.................................................................................................3 Process iterations and process activities......................................................................................................3 Incremental development........................................................................................................................5 Pros:..............................................................................................................................................5 Cons:.............................................................................................................................................5 Spiral development...................................................................................................................................6 Process activities..........................................................................................................................................6 Software specification..............................................................................................................................6 Software-design and –implementation....................................................................................................6 Software-validation and –verification.......................................................................................................7 System maintenance................................................................................................................................8 Software models...........................................................................................................................................8 Conclusion....................................................................................................................................................8
  • 3. SEN2 – Software processes Software process According to developing software, there are a lot of things that possibly can go wrong. The sooner an error occurs that has not been recognized, the higher is the amount of aftereffects. An important reason for that fact is that developer lose track of controlling their software development. Obviously the production of a software program, whether it has to be completely new or not, is that complex, that you necessarily need a well-structured planning. That kind of planning is called software process. A software process results in the creation of a software product. Although many organizations, which deal with software development, enormously differ from each other the way they do this work, there are also fundamental similarities. These similarities are specification, design and implementation, validation and evolution of software. The specification of software names its restraints of usage, and the role the software is intended to. Furthermore evolution of software means that the software has to be made able to make progress. In short software has to be customizable. As already mentioned, there is no "best" software process. But standardization reduces the amount of possibilities and results in improvement (also of communication). Another advantage of standardization is the possibility to support the software process by automation. Software process models A Software process model or process paradigm is an abstraction of a software process and each has its individual view to a software process. From this it follows that each Software process model shows only a fraction of the software process. There are many common models for being extended or matched. But exclusively 3 of them are described in the following. They are called "waterfall model", "evolutionary development" and "component based software engineering". The waterfall model is characterized by separation of the elementary process sequences "specification", "development", "validation" and "progress making". In contrast to that, the evolutionary development combines "specification", "development" and "validation". The component based software engineering differs from both models ahead: its issue is to reuse components that already exist to integrate them to a new system. Although distinguishing these three models, they are often used in combination. The Rational Unified Process does so. But also the formal development process is a form of such a combination. An example for that is the Cleanroom-process which expects to specify all primal cuts mathematically for being implemented by that later on. There is no doubt for the importance of using a software process model when developing software. But why do we need a software process model? To underline that, think of a hypothetical software project where you do not use such a model. The development process might become bad structured, which leads to a number of further problems. Those problems can be unstructured code and bad or even no Page | 3
  • 4. code documentation and so to solve occurring errors can take a lot of time, because you have to intensively search in the code. It is not only the fact, that time costs money, but if you often need more time than you expected to, the possibility to pass the deadline increases. And being aware of increasing time pressure supports increasing stress pressure. Of course software development under too hard stress cannot result in a qualified product. Indeed the worst case is if the product does not match with the customer's expectations. Waterfall model The waterfall model is divided into 5 phases: "requirement analysis and definition", "design of system and software", "implementation and testing components" and "operation and maintenance". While the first phase developers define the system specifications in detail by working with the system’s users. The second phase is about finding a basic abstraction of the system’s architecture, its components and relations between components. Next step is to implement the components and test them in the third phase. That leads to the fourth phase to implement the components’ relations and test the whole architecture. The following step is to deliver the software for usage. At last the fifth phase is about removing errors from the software that occur while its usage. Each phase leads to a different phase. But for entering a new one, the current one has to be finished. That means for example that produced documents must have been reviewed. Having entered the new phase, problems based on the phase before can be found by interchange of information between both phases. A little different to that the last phase which is for evaluating the software that resulted from the previous phases. At least one of them has to be repeated, whether the software result does not correlate to the expectations of the customer. For using the waterfall model sensible, those expectations should be fixed before starting and should not change while working on the software. In a different case, the waterfall model does not make any sense, as the condition to comply the separation of phases does not leave any space for customization meanwhile. Evolutionary Development The evolutionary development is based on a sketched implementation that should make the customer say which parts make him satisfied and which not. Next step is to customize the implementation to that and let the customer re-evaluate the implementation. Gradually, the reiteration of these steps, lead to a product that more and more matches with the customer's expectations. In this case, there are two ways of evolutionary development: "explorative development" and "throw-away prototype development". The goal of the explorative development is to create a final software product the way described above. In contrast to that, the throw-away prototype development the goal is to understand the customer's expectations in detail. As soon as the prototype is complete, the developers start to create the final software product. But there are two disadvantages for managing a project when using the evolutionary development: As there are changes in the software again and again while the development process is alive, the possibility
  • 5. SEN2 – Software processes that the software architecture is worse structured is very high. So doing a change afterwards might take much time and is expensive. Furthermore in this case a highly-qualified software-documentation is too expensive. In general this means that the evolutionary development does only make sense, if the size of the project is nearly small. Component Based Software Engineering The component based software engineering (CBSE) is that structured, that the realization of a new system consists of the integration of many standardized components that had already been completed. There are six steps involved to CBSE: "specification", "analysis of components", "adapt to specifications", "design with reuse", "development and implementation" and "validation of the system". Both the first and the last step can be found in other processes, too. But the rest differ: the second step is about finding components to comply the specification. The third step is for analyzing, how the specifications have to be adapted to the chosen components. The forth step is for designing a system from the specifications with the chosen components. If there is a need to produce a new component, it has to be done by then. While the fifth step the software parts that do not exist for the system have to be implemented. There are many reasons for developing software by using CBSE: If you nearly never have to produce completely new software, the costs decrease and the amount of errors is low. But the standardization also makes it more possible, that individual expectations of a customer cannot be matched. Process iterations and process activities Like in all bigger software projects, changes are ineluctable. Changes will occur in dimensions the company, which commissioned the software, reacts on the external environment. Some company process changes or technology changes could take effect on the created design or implementations in a way that these have to be changed. Software processes are never fixed and the process activities have to be repeated regularly to adopt changes. At this point you need iterative development where you repeat processes or iterate processes. There are two common process models existing for these iterating processes. The incremental development and spiral development are these models which will be described later. An important part of iterative processes is the fact that the specification and the software itself are developed simultaneously, so the most companies and business models disagree with this type of model. They need a complete specification of the system but while the system is developed with an incremental method there is no complete specification, so they need a new contract, which bigger companies in most cases don’t like. Page | 5
  • 6. Incremental development In a waterfall model you have to create requirements in the beginning of the development process and you cannot change them in a later progress. Actually you need them before you have started with the design. So if you are in al further progress of development and you have to change some requirements, you maybe have to repeat the whole development progress. The distinction between design and implementation leads to an exact documentation, for this an evolutionary method leads to badly structured and complex software but you can make decisions at one’s leisure. An incremental development tries to combine the pros of both. In the beginning of the development progress you decide some chunky requirements, also which are important and which are not. In the next step you decide which parts or increments of a system have to be delivered. The parts, which have a higher priority, will be delivered first. In the last step you also have dedicated the increments to the requirements. In the next step you design system architecture and begin with the development of the first subsystem. You also validate and integrate this subsystem to the whole software system and validate that one. In the end of this cycle you check if your system if complete or not. If it’s not than you have to proceed to the next subsystem and begin with the implementation of this one. Pros: - Customer don’t has to wait for a complete system - Customer could test early stages of the program with prototypes - Less risks of getting a failed project - Because of developing the important subsystems first they will be tested more often and will get the most attention Cons: - Difficult to detect functions early, which will be used by many subsystems
  • 7. SEN2 – Software processes Spiral development Another incremental development process is the spiral development process. The activities aren’t shown in a series but rather the whole software process is shown like a spiral. Each turn is a phase of the process. The inner turn is about the base software concepts, the next turn is about definition of requirements, and the next is about system design et cetera. The whole model is divided into four segments. - Determine objectives: determine special goals, basic conditions, management plan and risks - Identify and resolve risks: analyze each risk and initiate steps to resolve these risks - Development and Test: select the right development model depending on your basic risks and begin with development and validation - Plan the next iteration: check your project if you could proceed to the next turn of the spiral. The basic difference between the spiral model and different models is that the spiral model concentrates on risks. Page | 7
  • 8. Process activities There are four basic process activities. These are specification, development, validation and maintenance. Depending on which process model you use these activities are performed one after another, like in a waterfall model, or concurrently, like in an evolutionary development. Software specification Software specification or requirements analysis means that you analyze and try to understand constraints, functions and requirements the system has during development and in customer practice. This part of the whole development process is the most important because mistakes in the analysis lead to problems in design and implementation phase. The main analysis is split into four main steps: - Operability research: Here you determine if you can fulfill the requirements of the customer with today’s software- and hardware-technologies and if it’s cost-effective. Here you decide if you should continue with a further analysis. - Definition and analysis of Requirements: Upon discussions with customers and observation of existing systems you can create different software models and prototypes. This helps the analyst to understand the system. - Specification of requirements: Collect all information into a document. This specification contains functional and non-functional requirements. - Validate requirements: Check if your requirements are realistic, consistent and complete. Software-design and –implementation In this phase you create a specification into an executable system. You use design- and programming- activities, but if you are using an evolutionary method you may change the specification. In design activities you describe the structure of a system, the data and interfaces. This design document will be developed iterative over many versions. The separate activities in a design process are: - Architecture design: Define subsystems and their relationship. - Abstract specification: Create for each subsystem an abstract specification. - Interface design: Define for each interface a specification. - Component design: Allocate components to services and design their interfaces. - Data structure design: Specify data structures which are used in the system. - Algorithm design: Specify algorithms for the services. This is an abstract model of the design phase which is not fixed and could be adapted in praxis. In agile development methods results aren’t separate specification models, but rather shown in program code. If you use structured development methods you may use these models to design the software: - Object model
  • 9. SEN2 – Software processes - Sequence model - State model - Data flow model All these models help you to understand and implement the system. Some classes are maybe specified and designed in more detail than other and you can maybe use CASE-tools to generate program code from design models. In the last part you test your created code for correct function. For this you need to find at first the error, and then plan how to resolve the error, resolve the error and test your program again. Software-validation and –verification The verification and validation should show that all specifications are implemented and are implemented proper. During the whole development process you should test and check your results for correctness but the most validation costs occur after the implementation. Beside small programs you shouldn’t test the whole system at once. First you should test each component separately then in combination with other components until you can test it with the customer. If you found some errors and resolved them you maybe have to repeat some subtest to guaranty correct behavior. In general component implementation and testing are connected and done simultaneously. In an incremental development model you do testing during the development phase, while in extreme programming you design tests during the analysis phase what leads to a test-driven development. In later test phases you should implement the planned tests by a special test team. To connect the test activities and development activities you can use the V-Model. Page | 9
  • 10. System maintenance In bigger systems it’s very expensive to make changes at hardware. Software changes aren’t so expensive, so you could make these at any time. Even serious software changes are cheaper than hardware changes. In the past the development part and the maintenance where strictly separated. Development was more esteemed than maintenance, although maintenance was multiple times costly than development process. Nowadays this partition will become more and more unimportant, because developed software systems aren’t often complete new systems, so the engineering process becomes more and more an evolutionary process and combines both. The process of maintenance works like shown in this diagram. Software models Software models describe a software system in a graphical model and are used to design a software system by means of a structured method. These models maybe are object-models, sequence-models, state-models and many others. The most used models are defined in UML (UML 2.0). They help you to create a traceable design, but the creativity of the developers will be furthermore required. They still have to split the system and make sure they follow the specification. Conclusion We as software engineers intend to produce software that is usable, changeable, and it preferably has a low price. As producing software is complex and there are lots of ways to do that, it is an improvement to standardize this process in form of a software process model. Supporting the development of software by a software process model improves communication of engineers and helps to control the process. In General a software process model can make it easier to develop software.