Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Class 2204
INTRODUCTION
Software engineering is the practice of using selected process techniques to improve the
quality of a software development effort. This is based on the assumption, subject to
endless debate and supported by patient experience, that a methodical approach to
software development results in fewer defects and, therefore, ultimately provides shorter
delivery times and better value. The documented collection of policies, processes and
procedures used by a development team or organization to practice software engineering
is called its software development methodology (SDM) or system development life cycle
(SDLC). The challenge in selecting and following a methodology is to do it wisely -- to
provide sufficient process disciplines to deliver the quality required for business success,
while avoiding steps that waste time, squander productivity, demoralize developers, and
create useless administrivia. The best approach for applying a methodology is to
consider it as a means to manage risk. You can identify risks by looking at past projects.
If your organization has been plagued by problems resulting from poor requirements
management, then a robust requirements management methodology would be well
advised. Once this problem has been solved, through a repeatable process, the
organization might then streamline its process, while ensuring that quality is maintained.
Every step along the system development life cycle has its own risks and a number of
available techniques to improve process discipline and resulting output quality.
All projects can be managed better when segmented into a hierarchy of chunks such as
phases, stages, activities, tasks and steps. In system development projects, the simplest
rendition of this is called the "waterfall" methodology,
• Software Prototyping
• Joint Applications Design (JAD)
• Rapid Application Development (RAD)
• Extreme Programming (XP); extension of earlier work in Prototyping and RAD.
BASHIR MAMINU DANTATA 1 Class 2204
BSC (HONS) IT Student No- 207031275
System Analysis And design semester 2 Assignment
Class 2204
Few people in the modern computing world would use a strict waterfall model for their
Systems Development Life Cycle (SDLC) as many modern methodologies have
superseded this thinking. Some will argue that the SDLC no longer applies to models like
Agile computing, but it is still a term widely in use in Technology circles. The SDLC
practice has advantages in traditional models of software development, that lends itself
more to a structured environment. The disadvantages to using the SDLC methodology is
when there is need for iterative development or (i.e. web development or e-commerce)
where stakeholders need to review on a regular basis the software being designed. Instead
of viewing SDLC from a strength or weakness perspective, it is far more important to
take the best practices from the SDLC model and apply it to whatever may be most
appropriate for the software being designed.
The spiral methodology reflects the relationship of tasks with rapid prototyping,
increased parallelism, and concurrency in design and builds activities. The spiral method
should still be planned methodically, with tasks and deliverables identified for each step
in the spiral.
Documentation:
The reality is that increased processes usually result in increased documentation. An
improved process produces intermediate work products that represent the elaboration of
the product design at each step in the development life cycle. Where possible,
documentation should be generated using automated tools, so outputs can contribute to
generation of code structures or help generate the code itself.
The difference between hacking and software engineering is professional discipline
applied with common sense. Software quality, reliability, and maintainability are
enhanced by having good documentation for requirements, architecture, interfaces,
detailed design, well-commented code, and good test procedures. Requirements
documentation practices should facilitate your customer's understanding and review of
the real requirements. Software project planning should include estimating the time and
resources to produce, review, approve, and manage such documentation products.
Sample Software Documentation Work Products
It should not be assumed that just because the waterfall model is the oldest original
SDLC model that it is the most efficient system. At one time the model was beneficial
mostly to the world of automating activities that were assigned to clerks and accountants.
However, the world of technological evolution is demanding that systems have a greater
functionality that would assist help desk technicians/administrators or information
technology specialists/analysts.
Conclusion
All these different software development models have their own advantages and
disadvantages. Nevertheless, in the contemporary commercial software development
world, the fusion of all these methodologies is incorporated. Timing is very crucial in
software development. If a delay happens in the development phase, the market could be
taken over by the competitor. Also if a 'bug' filled product is launched in a short period of
time (quicker than the competitors), it may affect the reputation of the company. So, there
should be a tradeoff between the development time and the quality of the product.
Customers don't expect a bug free product but they expect a user-friendly product. That
results in Customer Ecstasy!
REFRENCES