CCS109 Week 2 Understanding Software Engineering
CCS109 Week 2 Understanding Software Engineering
III. INTRODUCTION:
This lesson examines the branch of engineering. It will discuss the need
of software engineering. Also, it will discuss some serious challenges
faced by software engineering. The lesson includes the discussion of
the major hardware components of computer system. In gaining better
perspective of software engineering, this topic will also discuss the
importance of project management and its processes.
IV. CONTENTS:
Lesson Coverage:
Engineering is the application of scientific and practical knowledge to invent, design, build, maintain, and
improve frameworks, processes. The term software engineering is a product of two words, software and
engineering. Software – collection of integrated programs. Software subsists of carefully -organized
instructions and code written by developers on any of various particular computer languages. Computer
programs and related documentation such as requirements, design models and user manuals. Engineering
is the application of scientific and practical knowledge to invent, design, build, maintain, and improve
frameworks, processes, etc. Software engineering is an engineering branch related to the evolution of
software product using well defined scientific principle, techniques and procedures. The result of software
engineering is an effective and reliable software product.
• Adaptability: If the software procedure were not based on scientific and engineering ideas,
it would be simpler to re-create new software than to existing one.
• Cost: As the hardware industry has demonstrated its skills and huge manufacturing has let
down the cost of computer and electronic hardware. But the cost of programming remains
high if the proper process is not adapted.
• Dynamic Nature: The continually growing and adapting nature of programming hugely
depends upon the environment in which the client works. If the quality of the software is
continually changing, new upgrades need to be done in the existing one.
Waterfall Approach
Introduced by Dr. Winston W. Royce in a paper published in 1970, the waterfall model is often also
referred to as the linear and sequential model, for the flow of activities in this model are rather linear and
sequential as the name suggests. In this model, the software development activities move to the next phase
only after the activities in the current phase are over. However, like is the case with a waterfall, one cannot
return to the previous stage.
Development activities:
• are performed in order,
• with possibly minor overlap,
• but with little or no iteration between activities.
User needs are determined, requirements are defined, and the full system is designed, built, and tested for
ultimate delivery at one point in time.
A document-driven approach best suited for highly precedence systems with stable requirements.
The Waterfall Approach focuses on the logical progression of all the steps involved in the software
development life cycle (SDLC). Once the development team moves on to the next stage of the development,
moving backward is restricted, which is also the biggest con of the Waterfall approach.
Incremental Approach
Determines user needs and defines the overall architecture, but then delivers the system in a series of
increments (“software builds”). The first build incorporates a part of the total planned capabilities, the next
build adds more capabilities, and so on, until the entire system is complete.
The agile software development methodology is an incremental and iterative approach to software
development. It follows the same set of steps as that of the Waterfall model, but unlike Waterfall, the Agile
Agile Development roots back to the 12 principles and 4 values of Agile Manifesto. Every organization that
follows these values and principles aggressively — practices Agile as its software development
• Speed
• Flexibility
• Cross-functional Setups
• Collaboration
• Communication
Spiral Approach
A risk-driven controlled prototyping approach that develops prototypes early in the development process
to specifically address risk areas followed by assessment of prototyping results and further determination
of risk areas to prototype. Areas that are prototyped frequently include user requirements and algorithm
performance.
Prototyping continues until high risk areas are resolved and mitigated to an acceptable level.
During each iteration or loop the system is explored at greater depth and more detail is added. Appropriate
for exploratory projects that are working in an unfamiliar domain or with unproven technical approaches.
The iterative natures allow for knowledge gained during early passes to inform subsequent passes.
Requires low up-front commitment.
Software engineering employs a well-defined and systematic approach to develop software as mentioned
above). Some of these approaches is considered to be the most effective ways of producing high-quality
software. However, despite this systematic approach in software development, there is still some serious
challenges faced by software engineering. Some of the challenges are listed below:
• The methods used to develop small or medium-scale projects are not suitable when it comes to the
development of large-scale or complex systems.
• Changes in software development are unavoidable.
• The advancement in computer and software technology has necessitated for the changes in nature
of software systems.
• Informal communications take-up a considerable portion of the time spent on software projects.
• The user generally has only a vague idea about the scope and requirements of the software system.
• Changes are usually incorporated in documents without following any standard procedure.
• The development of high-quality and reliable software requires the software to be thoroughly
tested.
Component of a Computer
• The hardware components of a computer system are the electronic and mechanical parts.
• The software components of a computer system are the data and the computer programs.
• Processor
• Main memory
• Secondary memory
• Input devices
• Output Devices
For typical desktop computers, the processor, main memory, secondary memory, power supply, and
supporting hardware are housed in a metal case. Many of the components are connected to the main
circuit board of the computer, called the motherboard. The power supply supplies power for the most
of the components. Various input devices (such as keyboard) and output devices (such as the monitor)
are attached through connectors at the rear of the case.
Bus – group of wires on the main circuit board of a computer. It is a pathway for data flowing between
components. Most devices are connected to the bus through a controller which coordinates the
activities of the device with the bus.
Processor – is an electronic device about a one inch square, covered in plastic. Inside the square is an
even smaller square of silicon containing millions of tiny electrical parts. A modern processor may
contain billion of transistors. It does the fundamental computing within the system and directly or
indirectly control all the other components.
Project Management
Projects can be large or small and involve one person or thousands of people. They can be done in one
day or take years to complete. As described earlier, IT projects involve using hardware, software, and
networks to create a product, service, or result.
Project Management – the application of knowledge, skills ,tools and techniques to project activities to
meet the project requirements.
4 stages:
• Feasibility Study
• Project Planning
• Project Execution
• Project Termination
Feasibility Study
c
c
Project Planning
Project Execution
Project
Termination
FEASIBILITY STUDY
The process of feasibility study takes as input the requirement details as specified by the user and
other domain specific details. The output of this process simply tells whether the project should be
undertaken or not and if yes, what would be the constraints be.
In addition, all the risks and their potential effects on the projects are also evaluated before a decision to
start the project is taken.
PROJECT PLANNING
A detailed plan stating stepwise strategy to achieve the listed objectives is an integral part of any
project.
▪ Develop strategies,
▪ Develop project policies,
▪ Determine course of action,
▪ Making planning decisions,
▪ Set procedures and rules for the project
▪ Develop a software project plan
▪ Prepare budget
▪ Conduct risk management
▪ Document software project plans
This step also involves the constructions of a work breakdown structure (WBS). It also includes size,
effort, schedule and cost estimation using various techniques.
PROJECT EXECUTION
Steps:
▪ Requirement Analysis
▪ Design
▪ Coding
▪ Testing and Implementation
▪ Testing
▪ Delivery and Maintenance
PROJECT TERMINATION
A project can be terminated for several reasons. Though expecting a project to terminate after a successful
completion is conventional, but at times, a project may also terminate without completion. Projects have to
closed down when the requirements are not fulfilled according to given time and cost constraints.
▪ Organizational politics
▪ Too much change in customer requirements
▪ Project Exceeding budget or funds
Once the project is terminated, a post-performance analysis is done. Also, a final report is published
describing experiences, lessons learned, recommendations for handling future projects.
DISCLAIMER
Every reasonable effort is made to ensure the accuracy of the information used in the creation of
this reference material, without prejudice to the existing copyrights of the authors. As an off-shoot of the
innumerable difficulties encountered during these trying times, the authors endeavored to ensure proper
attribution of the esteemed original works, by way of footnotes or bibliography, to their best abilities and
based on available resources, despite the limited access and mobility due to quarantine restrictions
imposed by the duly constituted authorities.
COPYRIGHT NOTICE
Materials contained in the learning packets have been copied and conveyed to you by or on behalf
of Pamantasan ng Cabuyao pursuant to Section IV - The Copyright Act (RA) 8293 of the Intellectual Property
Code of the Philippines.
You are not allowed by the Pamantasan ng Cabuyao to reproduce or convey these materials. The
content may contain works which are protected by copyright under RA 8293. You may be liable to copyright
infringement for any copying and/ or distribution of the content and the copyright owners have the right
to take legal action against such infringement.