Software Process(part 2)
In this section of unit 1, we discussed about software process, software specification, software design and imlementation, software validation, software evolution and case tool in detail, and their different phases.
Summary
In this section of unit 1, we discussed about software process, software specification, software design and imlementation, software validation, software evolution and case tool in detail, and their different phases.
Things to Remember
- Software specification is the process of understanding and defining what services are required from the system and identifying the constraints on the system’s operation and development.
- Requirement engineering is a particularly critical stage of the software development process, as errors at this stage inscrutably lead to problems in the system design and implementation. It has four main phases: feasibility study, requirement elicitiation and analysis, requirement specification and requirement validation.
- The implementation stage of the software development is the process of converting system specification into an executable system. Its main phases are : architectural design, abstract specification, interface design, component design, data structure design, and algorithm design.
- System validation is the process of checking the software to ensure that it works exactly according to the requirement specification. Component or unit testing, system testing and acceptance testing are steps of validation.
- Software evolution involves the change in the software or component as per the change in the customer needs or environment.
- CASE tools are software programs that automate or support the drawing and analysis of system models and provide for the translation of system models into application programs.
MCQs
No MCQs found.
Subjective Questions
No subjective questions found.
Videos
No videos found.

Software Process(part 2)
Software Specification
Software specification is the process of understanding and defining what services are required from the system and identifying the constraints on the system’s operation and development.(Sommerville SE_book)
Requirement engineering is a particularly critical stage of the software development process, as errors at this stage inscrutably lead to problems in the system design and implementation.The requirement engineering leads to the production of the requirement documents that is the specification for the software requirements are usually presented at two levels user requirements and system requirements.(Sommerville SE_book)
3.jpg)
There are four main phases in specification activities:
- Feasibility Study:An estimate is made of whether the identified user requirements may be satisfied by using current software and hardware technology. The study considers whether the proposed system will be cost effective from a business point of view and whether it can be developed within existing budget.
- Requirement Elicitation and Analysis:This is the process of deriving the system requirements through observation of an existing system discussion with potential user and task analysis.(slideshare) This may involve the development of core system model and prototype. This helps the system analyst to understand the system requirement and operation.
- Requirement Specification:The activity of translating the information gathered during the requirement determination and analyze
into the documents that defines the set of requirements. In requirement specification, two types of requirement may be included in the document: user requirement and system requirement. - Requirement Validation:The activity checks the requirement for realism, consistency and completeness. During this
phase, errors in the requirement document are discovered and modified to correct those errors.
Software Design and Implementation
The implementation stage of the software development is the process of converting system specification into an executable system.(coursehero) Software design is description of the structure of the software to be implemented the data which is part of the software, the interface between software component and algorithm used. Designers do not arrive at a finished design immediately but develop the design iteratively through a number of versions.
The design process may involve developing several models of the software at different level of abstraction.(Sommerville SE_book) As the design is decomposed, errors in earlier stage are discovered. This feedback allows earlier design model to be improved.
.jpg)
The specification design process activities are:
- Architectural design:The system making of the system and their relationship are identified and documented.
- Abstract specification:For each sub system and abstract specification of its services and constraint under which it must
operate are identified and specified. - Interface design:For each sub system its interface with other sub system is design and documented. The interface specification must allow the sub system to be used without knowledge of the sub system operation.
- Component design:Services are allocated to components and the interfaces of these components are designed.(coursehero)
- Data structure design:The data structure used in the system implementation is designed in detail and specify.
- Algorithm design:The algorithm used to provide services are designed in detail and specify.This is a general model of design process. The real and practical process may adopt it in different ways. Possible adoptions are (a)Last two stages of design, data structure and algorithm design may be delayed until the implementation process, (b)If exploratory approach to design is used, the system interface may be designed after the data Structure has been specified, and (c)The abstract specification stage may skipped, although it is usually an essential part of critical system design.
Software Validation
System validation is the process of checking the software to ensure that it works exactly according to the requirement specification. During software validation process, the software is tested with different types of users on actual working data. If software works properly with specified environment and actual operating data, then it is said to that the software confirms user requirement specification. It is performed in different process:
- Component or unit Testing:Individual components are tested to ensure that they operate correctly.(Sommerville SE_book) Each component is tested independently without other system component. Components may be simple entities such as functions, object, and classes or may be coherent grouping of these entities.
- System Testing:The components are integrated to make up the system. This process is concerned with finding errors
between two components and interface. It also concerned with validated that system meet its functional and non functional requirement. - Acceptance testing:This is the final stage in the testing process before the system is accepted for operational use.(Sommerville SE_book) The system is tested with data supplied by the costumer rather than with simulated.
.jpg)
Software Evolution
The feasibility of software system is one. For example the main reason whiles more and more software is being incorporated in large and complex system. Once a decision has been made to change hardware, it is very compensate, for changing the hardware at any time during or after the software development. There has always been a split between the process of software development and process of software evolution. Software systems was a system while software evolution process starts from existing system and make some changes to existing system or replace existing system.
.jpg)
Computer-Aided Software Engineering (CASE)
CASE tools are software programs that automate or support the drawing and analysis of system models and provide for the translation of system models into application programs.(coursehero) Some CASE tools also provide prototyping and code generation capabilities.A CASE repository is a system developers’ database.(coursehero) It is a place where developers can store system models, detailed descriptions and specifications, and other products of system development. Synonyms include dictionary and encyclopedia.(coursehero)
CASE Facilities:To use the repository, the CASE tools provide some combination of the following facilities.
- Diagramming tools:These tools are used to draw the system models required or recommended in most system development methodologies. Usually, the shapes on one system model can be linked to other models and to detailed descriptions.
- Dictionary tools:These are used to record, delete, edit, and output detailed documentation and specifications.(coursehero) The descriptions can be associated with shapes appearing on system models that were drawn with diagramming tools.
- Design tools:It can be used to develop system components such as inputs and outputs.
- Quality management tools:It analyzes system models, descriptions and specifications, and designs for completeness, consistency, and conformance to accepted rules of the methodologies.
- Documentation tools:These tools are used to assemble, organize, and report on system models, descriptions and specifications, and prototype that can be reviewed by system owners, users, designers, and builders.(coursehero)
- Design and code generator tools:The tools automatically generate database designs and application programs or significant portions of those programs.(coursehero)
Forward engineering requires the systems analyst to draw system models, either from scratch or from templates. The resulting models are subsequently transformed into program code.(slideshare)
Reverse engineering allows a CASE tool to read existing program code and transform that code into a representative system model that can be edited and refined by the systems analyst.(slideshare)
Reference:
- Sommerville, Ian. Software engineering. eight edition. Newyork: pearson, 2007.
- coursehero. <https://www.coursehero.com/file/11487611/Chapter1-Introduction-to-Software-Engineering-cs/>.
- coursehero. <https://www.coursehero.com/file/14097323/5-Lecture-Software-Process-Activitiespptx/>.
- csitprogram. <https://books.google.com.np/books?id=CDWRq0B9e5kC&pg=PA5&lpg=PA5&dq=+Software+Software+is+computer+programs+and+associated+documentation.&source=bl&ots=fuFOT7wYOS&sig=0tkbWoER8gf7RxbScRjIQc7W_d0&hl=en&sa=X&redir_esc=y#v=onepage&q=Software Software is%>.
- slideshare. <http://www.slideshare.net/shassan573/lecture-2-software-processes-38776502>.
.
Lesson
Introduction to Software Engineering
Subject
Software Engineering
Grade
IT
Recent Notes
No recent notes.
Related Notes
No related notes.