Software Engineering Tutorial
S / W -考试问题与答案
S / W工程资源
S/W 工程资源
S/W Engineering Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Software Development Life Cycle
软件开发生命周期,简称SDLC,是软件工程中明确定义的、有结构的一系列阶段,旨在开发预定的软件产品。
SDLC Activities
SDLC provides a series of steps to be followed to design and develop a software product efficiently. SDLC framework includes the following steps:
Communication
This is the first step where the user initiates the request for a desired software product. He contacts the service provider and tries to negotiate the terms. He submits his request to the service providing organization in writing.
Requirement Gathering
This step onwards the software development team works to carry on the project. The team holds discussions with various stakeholders from problem domain and tries to bring out as much information as possible on their requirements. The requirements are contemplated and segregated into user requirements, system requirements and functional requirements. The requirements are collected using a number of practices as given -
studying the existing or obsolete system and software,
conducting interviews of users and developers,
referring to the database or
collecting answers from the questionnaires.
Feasibipty Study
After requirement gathering, the team comes up with a rough plan of software process. At this step the team analyzes if a software can be made to fulfill all requirements of the user and if there is any possibipty of software being no more useful. It is found out, if the project is financially, practically and technologically feasible for the organization to take up. There are many algorithms available, which help the developers to conclude the feasibipty of a software project.
System Analysis
At this step the developers decide a roadmap of their plan and try to bring up the best software model suitable for the project. System analysis includes Understanding of software product pmitations, learning system related problems or changes to be done in existing systems beforehand, identifying and addressing the impact of project on organization and personnel etc. The project team analyzes the scope of the project and plans the schedule and resources accordingly.
Software Design
Next step is to bring down whole knowledge of requirements and analysis on the desk and design the software product. The inputs from users and information gathered in requirement gathering phase are the inputs of this step. The output of this step comes in the form of two designs; logical design and physical design. Engineers produce meta-data and data dictionaries, logical diagrams, data-flow diagrams and in some cases pseudo codes.
Coding
这个步骤也被称为编程阶段。软件设计的实现始于用适合的编程语言编写程序代码并高效地开发无误差的可执行程序。
Testing
An estimate says that 50% of whole software development process should be tested. Errors may ruin the software from critical level to its own removal. Software testing is done while coding by the developers and thorough testing is conducted by testing experts at various levels of code such as module testing, program testing, product testing, in-house testing and testing the product at user’s end. Early discovery of errors and their remedy is the key to repable software.
Integration
Software may need to be integrated with the pbraries, databases and other program(s). This stage of SDLC is involved in the integration of software with outer world entities.
Implementation
这意味着在用户机器上安装软件。有时,软件需要在用户端进行安装后配置。在实施过程中,软件经过可移植性和适应性的测试,解决了集成相关问题。
Operation and Maintenance
这个阶段确认软件的操作更高效、错误更少。如果需要,用户将接受培训或提供操作软件和保持软件运行的文档。软件将及时维护,根据用户端环境或技术的变化更新代码。这个阶段可能会面临隐藏的错误和未知的实际问题。
Disposition
随着时间的推移,软件的性能可能会下降。它可能会完全过时,或者需要进行强烈的升级。因此,有一个紧迫的需要消除系统的一个重要部分。这个阶段包括归档数据和必要的软件组件,关闭系统,计划处置活动,并在适当的系统终止时间终止系统。
Software Development Paradigm
软件开发范式帮助开发人员选择开发软件的策略。软件开发范式有自己的一套工具、方法和程序,这些清楚地表达并定义了软件开发的生命周期。一些软件开发范式或过程模型的定义如下:
Waterfall Model
瀑布模型是软件开发范例中最简单的模型。它指出SDLC的所有阶段将按线性方式相继运行。也就是说,当第一阶段完成后,第二阶段才会开始,依此类推。
该模型假设一切都按照以前的计划完美地进行和发生,没有必要考虑可能在下一阶段出现的过去问题。如果在上一步残留了一些问题,该模型不会顺利工作。模型的连续性质不允许我们回头撤销或重做我们的行动。
当开发人员已经设计并开发出类似软件,并了解其所有领域时,此模型最适合使用。
Iterative Model
此模型以迭代的方式引导软件开发过程。它以循环方式投射开发过程,每个SDLC过程的循环重复每个步骤。
该软件首先是在非常小的规模上开发的,并遵循了所考虑的所有步骤。然后,在每个下一个迭代上,更多的特性和模块被设计、编码、测试和添加到软件中。每个周期都会产生一个完全的软件,具有比前一个版本更多的功能和能力。
每次迭代后,管理团队可以进行风险管理工作并为下一轮迭代做准备。由于一个周期只包括整个软件流程的一小部分,因此更容易管理开发过程,但它需要更多的资源。
Spiral Model
螺旋模型是迭代模型和软件开发生命周期(SDLC)模型之一的结合体。可以将其视为选择一个SDLC模型并与循环过程(迭代模型)相结合。
这个模型考虑了风险,而其他大多数模型通常忽视了这一点。在一次迭代的开始,这个模型从确定软件的目标和约束开始。接下来是原型软件的阶段,这包括风险分析。然后,采用一个标准的 SDLC 模型来构建软件。在下一次迭代的计划的第四阶段准备完成。
V – model
瀑布模型的主要缺点是只有在前一个阶段完成后才能进入下一个阶段,如果在后期阶段发现了错误,则无法返回。V型模型提供了在每个阶段以相反方式测试软件的方法。
在每个阶段都会创建测试计划和测试用例,根据该阶段的要求验证和验证产品。例如,在需求收集阶段,测试团队根据要求准备所有测试用例。稍后,当产品开发并准备好进行测试时,该阶段的测试用例会根据要求验证软件在该阶段对其有效性。
这使得验证和验证同时进行。这个模型也被称为验证和验证模型。
Big Bang Model
这个模型是形式上最简单的模型。它需要很少的规划,大量的编程和大量的资金。这个模型的理念围绕宇宙大爆炸展开。正如科学家所说,大爆炸之后,许多星系、行星和恒星就像一个事件一样演化。同样,如果我们集中大量的编程和资金,你可以获得最好的软件产品。
对于这个模型,需要进行非常少量的计划。它不遵循任何过程,有时客户也不确定要求和未来的需求。因此输入需求是任意的。
这个模型不适用于大型软件项目,但是适用于学习和实验。
对于SDLC及其各种模型的深入阅读,请
Advertisements