Software Processes Overview
Software:
Software refers to a comprehensive set of computer programs, procedures, and associated documents that describe the operation and usage of the programs. It includes not just the code but also various forms of documentation and procedural guides.
Key Software Process Activities:
1.Software Specifications: Defining what the software should
do and any constraints on its operation.
2. Software Development: Creating the software to meet the
defined requirements.
3. Software Validation: Ensuring the software meets customer
needs and requirements.
4. Software Evolution: Updating and modifying the software to accommodate changing needs and requirements.
Software Process Models:
Software process models abstractly represent the actual processes involved in software development. These models often include activities, products, and roles of people involved. Examples include:
1.Workflow Mode: Illustrates the sequence of activities,
their inputs, outputs, and dependencies, focusing on human actions.
2. Dataflow or Activity Model: Represents activities that
transform data, showing how inputs are converted to outputs. This model can be
more detailed, showing lower-level activities.
3. Role/Action Mode: Details the roles of people involved and the activities they are responsible for.
General Software Development Paradigms:
1. 1.Waterfall Approach: A linear and sequential model where each phase (e.g., requirements specification, design, implementation, testing) must be completed before moving to the next. Each stage is formally "signed off" before proceeding.
2. Evolutionary Development: An iterative approach where
specification, development, and validation are interleaved. An initial version
of the system is rapidly developed and refined based on ongoing feedback.
4. System Assembly from Reusable Component: Focuses on
integrating pre-existing components rather than developing software from
scratch. The development process centers around assembling and configuring
these components.
Software Crisis:
The term "software crisis" refers to the challenges and issues associated with software development:
1.Size: Software systems are becoming increasingly large and complex. For instance, code size in consumer products can double every few years.
2.Quality: Many software products suffer from defects due to inadequate testing. Typically, 25 errors per 1000 lines of code are found during testing.
3. Cos: Developing software can be expensive. For example, the development cost of the FAA's Advanced Automation System was over $700 per line of code.
4.Delayed Delivery: Software projects often experience significant schedule overruns. Approximately one in four large-scale projects is never completed.
Program vs. Software:
Software encompasses more than just programs it includes documentation and operating procedures.
1. Program: Consists of source code and object code.
2. Documentation: Includes various manuals and diagrams like Data Flow Diagrams (DFD), flowcharts, and Entity-Relationship (ER) diagrams.
3. Operating Procedures: Instructions for setting up, using,
and troubleshooting the software. Examples include installation guides,
beginner's guides, reference guides, and system administration manuals.