Sei sulla pagina 1di 12

TSE2101 Software Engineering Fundamentals Quiz 1 Note

Useful Note for SEF Quiz No.1


1. Software
 Programs that provide function & performance
 Data structures for information manipulation
 Documents that describe the operations and use of the programs

Description 1 - Software is short for computer software, a type of computer program. It


means the applications and operating systems used with computers. A computer program
consists of many instructions that tell a computer what to do. Everything done on a
computer is done by using a computer program.

Description 2 - Software are "sort of the things" we called programs used to direct the
operation of a computer, as well as documentation giving instructions on how to use them.
Software is "the thing" because it is intangible (we cannot touch, feel, or smell software)
and do not wear out (do not degrade). Software, once written will always be the way it is. It
is the physical media that "holds the software" that degrades, not the software itself because
software is not physical.

Description 3 - Software are also "the so-called things" that comprise ideas, instructions
and algorithms put into some language codes, stored on some media, then parsed, read,
compiled or interpreted and executed by another software, that for example, direct actions
ranging from controlling the lives of people in hospitals on life-support machines on one
end, to the navigation and control of humans going to the moon and returning back
successfully on the other extreme. In the middle, we have our handphones that allow us to
communicate using text, audio and video with our loved ones at anyplace and anytime, of
course with the help of software.

2. Engineering
 A discipline that applies scientific and technical methods in the design and production
of a product

Description 1 - Engineering is the profession of applying scientific principles to the design,


construction, and maintenance of artifacts in many different disciplines. It is essentially the
use of science and mathematics to design or make things. People who do engineering are
called engineers.

Description 2 - Engineering has many sub disciplines: For engines, cars, machines, etc
(mechanical engineering), buildings, bridges, roads, etc (civil engineering), electrical
machines and communication systems (electrical engineering), chemical plant and
machinery (chemical engineering), or aircraft (aeronautical engineering), sanitary (sanitary
engineering), environment (environmental engineering), software (software engineering)
and many many more.

Kirby510’s Website Blog 1 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

Description 3 - Engineering is also described as the art or science of making practical


application of the knowledge of pure sciences, as physics or chemistry, and mathematics in
the construction of anything such as engines, bridges, buildings, mines, ships, and chemical
plants.

3. Software Engineering
 The application of a systematic, disciplined, quantifiable approach to the development,
operation, and maintenance of software
 The practical application of scientific knowledge in the design and construction of
computer programs and the associated documentation required to develop, operate, and
maintain them

SE Description 1 - Software engineering (SE) is a profession dedicated to designing,


implementing, and modifying software so that it is of higher quality, more affordable,
maintainable, and faster to build.

SE Description 2 - According to the definition of IEEE, SE is a "systematic approach to the


analysis, design, assessment, implementation, test, maintenance and reengineering of
software, that is, the application of engineering to software."

SE Description 3 - SE is the application of engineering to software because it integrates


significant mathematics, computer science and practices whose origins are in engineering.

SE Description 4 - SE is a field of Computer science, concerned with designing and writing


programs for computers. A software engineer tries to change software so that it is of a
better quality. Better quality software is easier to understand, to maintain, or to extend.
Becoming a software engineer is a higher education, done at the university level, usually.
Software engineering can be very difficult work.

4. Software Engineering Body of Knowledge (SWEBOK)


The Software Engineering Body of Knowledge (SWEBOK) is a product of the Software
Engineering Coordinating Committee sponsored by the IEEE Computer Society. The
software engineering body of knowledge is an all-inclusive term that describes the sum of
knowledge within the profession of software engineering. Since it is usually not possible to
put the full body of knowledge of even an emerging discipline, such as software
engineering, into a single document, there is a need for a Guide to the Software
Engineering Body of Knowledge. This Guide will seek to identify and describe that subset
of the body of knowledge that is generally accepted, even though software engineers must
be knowledgeable not only in software engineering, but also, of course, in other related
disciplines.

Kirby510’s Website Blog 2 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

The purposes of the SWEBOK Guide are:


(1) To characterize the contents of the software engineering discipline;
(2) To promote a consistent view of software engineering worldwide;
(3) To clarify the place of, and set the boundary of, software engineering with respect to
other disciplines;
(4) To provide a foundation for training materials and curriculum development;
(5) To provide a basis for certification and licensing of software engineers.

As of the 2004 edition, the SWEBOK guide define ten (10) Knowledge Areas (KAs) within
the field of software engineering:

TECHNICAL AREAS (5 KAs) OF SOFTWARE ENGINEERING


Also called the Software Development Life Cycle (SDLC) processes
 Software requirements
 Software design
 Software construction
 Software testing
 Software maintenance

MANAGEMENT AREAS (5 KAs) OF SOFTWARE ENGINEERING


 Software configuration management
 Software engineering management
 Software engineering process
 Software engineering tools and methods
 Software quality

5. Waterfall Model

System
Engineering

Analysis

Design

Code

Testing

Maintenance

Kirby510’s Website Blog 3 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

Characteristics
 The classic life cycle - oldest and most widely used paradigm
 Activities ‘flow’ from one phase to another
 If there are corrections, return to a previous phase and ‘flow’ from there again
 Major advantages: Good for planning and well-defined/repeated projects

Problems
 Real projects often follow the sequence
 All requirements may not be stated explicitly by customer
 Customer only sees the results after some time
 Developers are often delayed at certain phases

6. Prototyping Model

Start

Requirements
Quick Building
gathering and
design prototype
refinement

Engineer Refining Customer


product prototype evaluation

Stop

Characteristics
 Developer and customer determine objectives and draft requirements
 Prototype quickly produced and evaluated by customer
 Prototype then refined, and re-evaluated
 Process iterated, before final product development
 Advantages: Customer participation and better requirements

Problems
 Customer may see prototype as working model and expects fast results
 Developer compromised when producing prototype quickly, e.g. different operating
system or programming language

Kirby510’s Website Blog 4 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

7. Rapid Application Development


Team #1 Team #2

Business Business
Modeling Modeling

Data Data
Modeling Modeling

Process Process
Modeling Modeling

Application Application
Generation Generation

Testing & Testing &


Turnover Turnover

Characteristics
 “High-speed” version of waterfall model
 Primarily for information systems applications
 Requirements well-understood, fully functional system produced in short time
 The application modularized - major functions can be completed in 3 months
 Separate teams complete the functions, then integrated as a whole
 Requires human resource and commitment

8. Incremental Model

Analysis Design Code Test 1st increment

Analysis Design Code Test 2nd increment

Analysis Design Code Test 3rd increment

Characteristics
 Software separated into different “increments” - complete working portions
 Focus on delivery of operational product with each increment - can be evaluated
 Useful when insufficient staff and can be planned to manage technical risks, e.g.
waiting for new hardware

Kirby510’s Website Blog 5 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

9. Spiral Model

Characteristics
 Originally proposed by Boehm, couples iterative nature of prototyping and the
systematic aspects of waterfall model
 Software is developed in series of incremental releases
 Each iteration produces a more complete product
 Better management through risk analysis

Problems
 May be difficult to convince customers that evolution is controllable
 Demands risk assessment expertise - major risk will cause problems if not identified
 Relatively new and not widely used - cannot determine performance

10. Component Assembly Model

Build
components
Yes

Identify Look up
Construct
candidate components Available?
System
components in library
No

Extract
components

Kirby510’s Website Blog 6 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

Characteristics
 Use of object-oriented technology
 Components - classes that encapsulate both data and algorithms
 Components developed to be reusable
 Paradigm similar to spiral model, but engineering activity involves components
 System produced by assembling the correct components

11. Fourth Generation Techniques (4GT)

Requirements
gathering

"Design"
Strategy

Implementation
using 4GL

Testing

Characteristics
 Use of software tools that allow software engineer to specify s/w characteristics at
higher level
 The tools generate codes based on specification
 More time in design and testing - increase productivity
 Tools may not be easy to use, codes generated may not be efficient

12. Project
 A group of tasks performed in a definable time period in order to meet a specific set of
objectives.

A project is a series of activities leading to defined goals and deliverables achieved in a


specified time frame.

A project has a specific starting date, and a specific ending date.

A project may involve the activities of a team of people, or be a relatively complex series
of activities completed by a single person.

Kirby510’s Website Blog 7 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

Project Features:
 Defined Budget and Schedule
 Specific Start and End time
 Work Scope
 Unique
 Team of individuals

13. Management
 Management involves the activities and tasks taken by one or more persons. Its
functions can be categorized as planning, organizing, staffing, directing and controlling.

Management Activities:
 Planning sets to determine in advance what are the activities that need to be executed to
accomplish the objectives.
 Organizing involves arranging the necessary resources to carry out the plan. It is the
process of creating structure, establishing relationships, and allocating resources to
accomplish the goals of the organization.
 Staffing means the process of selecting and training people for positions in the
organizations.
 Directing is an act of leadership. Directing is important to create an atmosphere that
will motivate and enable others to contribute toward the desired end result.
 Controlling is an act of establishing, measuring and evaluating activity performance
against the objectives that were planned ahead.

14. Project Management


 Project Management is a system of management procedures, practices, technologies,
skill and experience that is necessary to successfully manage an engineering project.

Project management is the discipline of planning, organizing, securing and managing


resources to bring about the successful completion of specific project goals and objectives.

Objectives of Project Management:


 The project should be within the cost that is budgeted or planned.
 The project should be on schedule so that the product is delivered as planned. The
product also should meet the user requirements.
(1) Provide the software product that meets client requirements (correctly, etc)
(2) Deliver the product "on-time" (within time, below time, timely, etc)
(3) Complete the project "on-cost" (within budget, below budget, on-budget, etc)

15. The Four P’s


 People — the most important element of a successful project
 Product — the software to be built
 Process — the set of framework activities and software engineering tasks to get the job
done
 Project — all work required to make the product a reality

Kirby510’s Website Blog 8 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

PRODUCT ==> Software is not tangible, invisible, non-tactile, etc. Imagination,


Abstraction, Virtualization, etc.

PROCESS ==> Estimation is not an exact science. Can be off by a mile in cost and time ...,
etc.

PROJECT ==> A director with brains, eyes, ears, a gun (to use) ... to get things done, by
hook or by crook. Managing the project PRMCC (Planning, Reviewing,
Monitoring, Control and Coordination)

PEOPLE ==> Human beings have thousands of different behaviours.

16. Project Management Principles


(1) PLANNING - plan everything ===> determining deliverables, effort, schedule and cost
estimation, resource allocation, etc. Prioritize the activities. Identify risks, mitigating
measures, etc.
(2) REVIEW OF PLANS - SMART (Specific, Measurable, Achievable, Realistic, Time-
Bound), make changes where necessary, contingency plans, worst case scenarios, etc.
(3) MONITORING/MEASURING PROGRESS - proceed knowing what is happening (not
blind). Assessment. On track, or delayed, etc.
(4) CONTROL (DECISION MAKING) - right decisions, right decisions at the right time.
Attitudes: Shoot to kill ... Fire employees ... etc, when required.
(5) COORDINATE (TEAM COMMUNICATIONS) - make sure everyone that needs to
know knows. Communicate timely, clearly and effectively.

17. Project Management Activities


 Establish project objectives
 Defining work requirement
 Determining work timing
 Establishing resource availability and requirements
 Establishing a cost baseline
 Evaluating and optimising the baseline plan
 Freezing the baseline plan
 Tracking the actual costs
 Comparing the progress and cost to the baseline plan
 Evaluating performance
 Forecasting, analysing and recommending corrective action

The five process groups (activities) are:

1. Initiating
2. Planning
3. Executing
4. Monitoring and Controlling (Milestones)
5. Closing

Kirby510’s Website Blog 9 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

18. Project Management Problems


 Unrealistic deadlines
 Insufficient planning
 Unclear goals
 Uncommitted team members
 Breakdowns in communications
 Conflicts between departments

19. Obstacles in Project Management


 There also could be many obstacles in project management practices. These obstacles
could make project management even more challenging.
 Among those obstacles are the inherent complexities of software projects as the
software consists of many integrated modules and complex procedures involved.
 Special software requirements by the customer that cannot be fulfilled easily.
 Organizational restructuring also may result in the change of job assignments within the
team.
 There could also be risks in any project. Examples of risks could be due to change in
technology, or resistance of user towards change introduced by the new software.

20. Benefits of Project Management


 Identification of function responsibilities to ensure that all activities are accounted for,
regardless of personnel turnover
 Minimizing the need for continuous reporting
 Identification of time limits for scheduling
 Measurement of accomplishment against plans
 Early identification of problems
 Improved estimating capabilities for future planning by knowing when objectives
cannot be met or will be exceeded

21. Project Management Concerns


 Product quality?
 Risk assessment?
 Measurement?
 Cost estimation?
 Project scheduling?
 Customer Communication
 Staffing?
 Other resources?
 Project Monitoring?

Kirby510’s Website Blog 10 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

Past Examination Paper Questions

(Trimester 3 2007/2008)
QUESTION B1
(a) Compare the Incremental Model with the Spiral Model. Draw a figure to represent each
model, and list their advantages and disadvantages. [10 marks]

(b) List TWO (2) problems of the Prototyping Model. [2 marks]

(c) What are the purposes and main tasks of the "definition phase" in the software development
process? [3 marks]

(Trimester 3 2008/2009)
1. During the early days of computing, software program were written to make the hardware
works. However, as computer applications evolve, the need to create a larger software
programs rises. Due to this need, software engineering is introduced to the development of
such programs.

i. Explain what it means by software engineering. [2 marks]

ii. Describe why software engineering is so important for software development. [2 marks]

(Trimester 3 2010/2011)
QUESTION B1 SOFTWARE PROJECT MANAGEMENT
B1(a) Describe five (5) goals of Project Management. Focus the goals specifically for software
engineering project management. You may provide appropriate examples in your
answers.
[5 x 2 points = 10 points]

B1(b) Explain the meaning of the following terms used in project management.

(b1) risk management


(b2) project milestone
(b3) project deliverable
(b4) project critical path
(b5) work breakdown structure
[5 x 2 points = 10 points]

B1(c) Discuss the accuracy of the statement, "A high degree of technical expertise is a bonus
but not necessary to be a project manager". In your answer, discuss five (5) major
attributes required for a good project manager.
[5 points]

Kirby510’s Website Blog 11 June 2013


TSE2101 Software Engineering Fundamentals Quiz 1 Note

QUESTION B2 SOFTWARE ENGINEERING PROCESSES


B2(a) Software engineering process models cover all the activities identified in the Software
Development Live Cycle (SDLC) processes. What are the five (5) activities of the SDLC
processes?
[5 points]

B2(b) What is the primary difference between the Waterfall Model and the Spiral Model?
[3 points]

B2(c) List down three (3) important characteristics of the Agile Software Development Model.
[3 points]

B2(d) Explain three (3) benefits of the Rational Unified Process (RUP) model.
[3 points]

B2(e) Under what circumstances should we implement the Prototype Model?


[3 points]

B2(f) In terms of its implementation, explain about the Rapid Application Development (RAD)
model.
[3 points]

B2(g) Discuss five (5) issues of consideration when making decisions regarding the choice of
the right process model for a software engineering project.
[5 points]

Kirby510’s Website Blog 12 June 2013

Potrebbero piacerti anche