Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
Software Processes

Software Processes



|Views: 1,573|Likes:
Published by jennyrosesison
Lesson 2
Software Processes
Lesson 2
Software Processes

More info:

Published by: jennyrosesison on Aug 30, 2008
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less





Lesson 2
common mistake people make concerning software isassuming that the majority of software development isprogramming. When they think of programming, theirminds conjure up the image of a late-night hackerpounding out code on an old computer in the basement of a mustyapartment. While this is certainly one approach to programming, itis hardly the norm and definitely
not the way 
the majority of currentsoftware is developed. In fact, programming is only a fraction of the software development process. Today, many other steps areinvolved in the successful development and deployment of computer software. Taken together, all these steps are referred toas the software life cycle. Often models called software life cyclemodels describe these steps. In the next two lessons we willexamine two of these models: the waterfall model and the spiralmodel. First, however, we need to describe the basic processesthat make up the software life cycle.
The Meaning of Process
When we provide a service or create a product, whether it bedeveloping software, writing a report, or taking a business trip, wealways follow a sequence of steps to accomplish a set of tasks. Thetasks are usually performed in the same order each time; forexample, you do not usually put up the drywall before the wiring fora house is installed or bake a cake before all the ingredients aremixed together. We can think of a set or ordered tasks as a
; a series of steps involving activities, constraints, andresources that produce an intended output of some kind.A process usually involved a set of tools and techniques. Anyprocess has the following characteristics: The process prescribes all of the major process activities. The process uses resources, subject of a set of constraints(such as a schedule), and produces intermediate and finalproducts. The process may be composed of subprocesses that arelinked in some way. The process may be defined as ahierarchy of processes, organized so that each subprocesshas its own process model.
Lesson 2: Software Processes__________________________________________________________________
Each process activity has entry and exit criteria, so thatwe know when the activity begins and ends. The activities are organized in a sequence, so that it isclear when one activity is performed relative to the otheractivities.Every process has a set of guiding principles that explainthe goals of each activity.Constraints or controls may apply to an activity, resource,or product. For example, the budget or schedule mayconstrain the length of time an activity may take or a toolmay limit the way in which a resource may be used.Processes are important because they impose consistency andstructure on a set of activities. These characteristics are usefulwhen we know how to do something well and we want to ensurethat others do it the same way. Similarly, a software developmentprocess can be described in flexible ways that allow people todesign and build software using preferred techniques and tools; aprocess model may require design to occur before coding, but mayallow many different design techniques to be used. For this reason,the process helps to maintain a level of consistency and quality inproducts or services that are produced by many different people. The process structure guides our actions by allowing us to examine,understand, control, and improve the activities that comprise theprocess. Processes are also important for enabling us to captureour experiences and pass them along to others. Just as masterchefs pass on their favorite recipes to their colleagues and friends,master craftspeople can pass along documented processes andprocedures. Indeed, the notions of apprenticeship and mentoringare based on the idea that we share our experience so we can passdown our skills from senior people to junior ones.In the same way, we want to learn from our past developmentprojects, document development process so we can understand,control, and improve what happens as we build products for ourcustomers. Most models of the software life cycle include thefollowing six processes: requirements engineering, design,programming, integration, delivery, and maintenance. The listbelow gives a description of each process and will be discussed indetails in the succeeding lessons.
Requirements Engineering
 During this process, developers and clients meet to discuss ideasfor the new software product. Developers use a variety of techniques in order to assess the real needs of the client. One suchtechnique is rapid prototyping in which a prototype program is builtthat can mimic the functionality of the desired software. Using thisprototype, clients can better understand how the final product willbehave and can determine whether this behavior is what they really
Software Project Management_________________________________________________________________
___________________________________________________ Software Engineering: A ComputerScience Approach
need. Unless the requirements engineering process is doneproperly, the resulting software will not be useful to the client eventhough it may run correctly. The requirements engineering processis completed when the specifications for the new software productare written in a formal document called the requirementsspecification document.
 During this process, the developers decide how they will constructthe software so that it meets the specifications agreed upon in therequirements specification document. Usually the design of thesoftware goes through several stages in which it becomesprogressively more detailed. This approach to design is called
stepwise refinement 
, and it allows the developers to manage thecomplexity of software by postponing decisions about details as lateas possible in order to concentrate on other important designissues. When the design is complete, it is recorded in the designspecification document.
 During this process, teams of programmers write the actual code of the software. The software is divided into separate units calledmodules in order to handle the complexity of the programmingprocess. Not only are these teams responsible for coding theirmodules, they are also responsible for proper documentationdescribing their code and for testing the code to insure correctness.
 During this process, the individual modules of the software productare combined to form the integrated software product. Since themodules were developed separately, testing is crucial to theintegration process. Even with a good design, incompatibilitiesbetween modules are likely to exist. These problems need to beidentified and corrected to complete the integration.
 During this process, the developers deliver the completed softwareto the clients. Usually the clients will conduct acceptance testingon the software to determine whether or not it meets thespecifications agreed upon in the requirements specificationdocument. Once the software is accepted, it is installed and usedby the client.
 During this process, the software undergoes various changes afterdelivery in order to fix bugs, add new functionality, port thesoftware to new platforms, or adapt the software to newtechnologies. Although it may seem that the software should befinished after delivery, this is far from true. All successful software
_________________________________________________________________ Software ProjectManagement

Activity (16)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Raed K. liked this
Chanchal Roy liked this
Monika Dogra liked this
userraj liked this
Jian Hong liked this
marmayaug1445 liked this
sohail749 liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->