0% found this document useful (0 votes)
77 views21 pages

EC2302 Workbook

This document contains a student workbook for a Software Engineering course. It outlines 14 weekly lessons on topics like introduction to software engineering, software process models, requirements analysis, project management, structured and object-oriented methodologies, software design and more. Each lesson contains learning outcomes, exercises and key terms. The workbook aims to teach students how to analyze software requirements, describe development methodologies, and choose appropriate tools to estimate and plan projects.

Uploaded by

mohammed nafees
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views21 pages

EC2302 Workbook

This document contains a student workbook for a Software Engineering course. It outlines 14 weekly lessons on topics like introduction to software engineering, software process models, requirements analysis, project management, structured and object-oriented methodologies, software design and more. Each lesson contains learning outcomes, exercises and key terms. The workbook aims to teach students how to analyze software requirements, describe development methodologies, and choose appropriate tools to estimate and plan projects.

Uploaded by

mohammed nafees
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 21

FACULTY OF ENGINEERING SCIENCE

AND TECHNOLOGY

SCHOOL OF COMPUTING

DIPLOMA IN COMPUTER SCIENCE


DIPLOMA IN BUSINESS INFORMATION
TECHNOLOGY

EC2302
SOFTWARE ENGINEERING

STUDENT WORKBOOK

ACADEMIC YEAR: 2021


CONTENTS

Week Lesson Topic


Week 1 Lesson 1 : Introduction To Software Engineering
Week 2 Lesson 2 : Software Process Models
Week 3 Lesson 3 : Requirements Analysis and Specifications
Week 4 Lesson 4 : Software Project Management
Week 5 Revision 1 : Consolidation
Week 6 Lesson 5 : Structured and Object-Oriented Methodologies
Week 7 Lesson 6 : Software Design and Programming
Week 8 Revision 2 : Consolidation
Week 9 Test : Mid Term Test
Week 10 Lesson 7 : Software Testing
Week 11 Lecture 8 : Maintenance
Week 12 Revision 3 : Consolidation
Week 13 Revision 4 : Consolidation
Week 14 Revision 5 Consolidation

LESSON 1: Introduction To Software Engineering

1.1 Introduction

In this lesson, you will learn how to define software, identify software crisis and explain the
importance of software engineering.

1
1.2 Learning Outcomes

By the end of this lesson, you should be able to:


 analyze the software requirements of a simple system

1.3 Exercises

1. Define software engineering.


Software engineering is a process is a process which analysing user requirement and design,
develop, and test the software which satisfy the user requirement

2. What is software crisis?

Is a situation where a failure occurred in software development is known as software crisis

3. Why software engineering is needed to manage complexities which arise during the
software development?

4. Describe the differences between software engineering and other engineering?

1. Intangible product

2. No standard software process


3. Large projects are often one-off

4. Rapid change in technology

2
1. 4 Summary

In this lesson, you have learned the importance of software engineering in software
development.

1. 5 Key Terms

Software Products which are developed by using computer programs code.

Software Usage of established engineering principles and procedures to


Engineering develop software which have good quality, reliable and
maintainable.

Software Set of problems encountered in software products either during


Crisis development or after implementation.

3
LESSON 2: Software Process Models

2.1 Introduction

In this lesson, you will learn about the definition of process models and understand the
different types of Software Development Lifecycle models and their importance.

2.2 Learning Outcomes

By the end of this lesson, you should be able to:


 analyze the software requirements of a simple system.

2.3 Exercises

1. What is software process?

2. Why following a specified process to develop software is important?

3. What is Software Development Life cycle?

4. Distinguish between waterfall and spiral model.

5. Discuss the benefits of using prototype model.

4
6. Explain throw-away prototype and evolutionary prototype.

7. What are the TWO (2) models which are under the categories of object-oriented
models.

2. 4 Summary

In this lesson, you have learned the definition of software process models, software
development life cycle and different types of models.

2.5 Key Terms

Process Models To develop software using the specified steps through different
types of views or so called models.

Software Software development which goes through progression of


Development specified phases.
Life cycle

5
LESSON 3: Requirement Analysis and Specifications

3.1 Introduction

In this lesson, you will learn how to identify the first phase of SDLC and discuss the
activities under this phase.

3.2 Learning Outcomes

By the end of this lesson, you should be able to


 analyze the software requirements of a simple system

3.3 Exercises

1. What is the purpose of requirements analysis?

2. Discuss the requirements process.

3. Why requirements are important to establish quality and reliable software?

4. Explain the differences between functional and non-functional requirements.

5. Discuss the characteristics of the requirements specifications or documentation.

6
6. Discuss ways to elicit requirements and from which sources?

3 4 Summary

In this lesson, you have learned the definition of requirement analysis, its importance and the
types of requirements documentation or specifications.

3.5 Key Terms

Requirements Statements of needs as expressed by clients.

Specifications Documents that specified the requirements to stakeholders.

7
LESSON 4: Software Project Management

4.1 Introduction

In this lesson, you will learn about the definition of project planning and management,
identify the importance of project schedule, acquire knowledge of different software cost and
estimations techniques.

4.2 Learning Outcomes

By the end of this lesson, you should be able to:


 choose appropriate tools and techniques to estimate and plan a small to medium
project.

4.3 Exercises

1. Explain the tasks of software project manager.

2. What is project plan?

3. Identify the components of a project p;lan.

8
4. What is SOW?

5. Describe briefly any ONE (1) tool which can be used for project schedule.

6. What is an estimation?

7. Describe COCOMO model.

8. Explain FOUR (4) types of scheduling concepts.

9. What is a GANTT CHART?

9
10. Draw any examples of GANTT CHART which show schedules for SIX weeks.

4. 4 Summary

In this lesson, you have learned the definition of project panning, having knowledge of
different categories of software estimations and different ways to do project scheduling.

4.5 Key Terms

Project Plan Defines the work that will be done on the project and who
will do it.

Statement Of Work The detailed descriptions of all the work products which
will be created throughout the project development.

Project Schedule Assigning and determining the calendar time by showing


and allocating the tasks required to complete the project.

Estimation Set of expectations whether time or costs for the project to


complete.

10
LESSON 5: Structured and Object-oriented methodologies

5.1 Introduction

In this lesson, you will learn how to define methodologies, structured approach and object-
oriented approach.

5.2 Learning Outcomes

By the end of this lesson, you should be able to:


 describe two or more development methodologies.

5.3 Exercises

1. What is the purpose of methodologies?

2. Contrast between structured and object-oriented approach.

3. List all techniques used in structured approach.

4. Draw a data flow diagram and use case diagram for the scenario below:
The purpose of the GREEN ACRES REAL ESTATE SYSTEM is to assist agents as
they sell houses. Sellers contact the agency, and an agent is assigned to help
the seller complete a LISTING REQUEST . Information about the house and lot

11
taken from that request is stored in a file. Personal information about the
sellers is copied by the agent into a sellers file.
When a buyer contacts the agency, he or she fills out a BUYER REQUEST .
Every two weeks, the agency sends prospective buyers AREA REAL ESTATE
LISTINGS and an ADDRESS CROSS REFERENCE LISTING containing actual
street addresses. Periodically, the agent will find a particular house that
satisfies most or all of a specific buyer’s requirements, as indicated in the
BUYER ’S REQUIREMENTS STATEMENT distributed weekly to all agents. The
agent will occasionally photocopy a picture of the house along with vital data
and send the MULTIPLE LISTING STATEMENT (MLS) to the potential buyer.
When the buyer selects a house, he or she fills out an OFFER that is forwarded
through the real estate agency to the seller, who responds with either an
OFFER ACCEPTANCE or a COUNTER OFFER . After an offer is accepted, a
PURCHASE AGREEMENT is signed by all parties. After a PURCHASE
AGREEMENT is authorized, the agency sends an APPRAISAL REQUEST to an
appraiser, who appraises the value of the house and lot. The agency also
notifies its finance company with a FINANCING APPLICATION .

12
5. 4 Summary

In this lesson, you have learned how to define methodologies and identify structured and
object-oriented approach.

5.5 Key Terms

Methodology A framework that is used to structure, plan, and control


the process of developing an information system.

Structured A traditional approach to system development.

Object-oriented An approach using the object paradigm which follows the UML
techniques to develop software.

13
LESSON 6: Software Design and Programming

6.1 Introduction

In this lesson, you will learn about the definition of software design, identify different design
models and understand programming activities.

6.2 Learning Outcomes

By the end of this lesson, you should be able to:


 analyze the software requirements of a simple system

6.3 Exercises

1. What is the difference between design and coding?

2. Explain the FOUR (4) types of software design.

3. Why is interface design important?

4. Discuss methods to do data design.

14
5. Explain all notations in program design.

6. What are tools used in data design?

6. 4 Summary

In this lesson, you have learned the different aspects of software design.

6.5 Key Terms

Software design Construction of logical view and model before the actual
coding started.

15
LESSON 7: Software Testing

7.1 Introduction

In this lesson, you will learn how to define testing and identify different categories of
software testing.

7.2 Learning Outcomes

By the end of this lesson, you should be able to:


 analyze the software requirements of a simple system
 plan the testing for a software module and select test cases for a software module.

7.3 Exercises

1. Define software testing.

2. Why testing could enable us to achieve software quality?

3. What is the purpose of testing plan?

4. Distinguish between white-box and black-box testing techniques.

16
5. Explain the THREE (3) types of software testing.

.6 What is review and why it is needed?

7. Discuss all types of reviews.

7. 4 Summary

In this lesson, you have learned how to define software testing and all aspects of tesiing.

7.5 Key Terms

Test Plans Lists of tasks which identify all requirements that are not met in
software.

17
Reviews Activity where the reviewers will assess the software and provide
feedbacks.

LESSON 8: Maintenance

8.1 Introduction

In this lesson, you will learn how to define software maintenance, identify different
categories and maintenance aspects.

8.2 Learning Outcomes

By the end of this lesson, you should be able to:


 analyze the software requirements of a simple system

8.3 Exercises

1. What is the purpose of software maintenance?

2. Why developers spent most effort in maintenance?

18
3. Discuss THREE (3) types of maintenance.

4. What is the difference between structured and unstructured maintenance?

8. 4 Summary

In this lesson, you have learned how to define maintenance and maintenance aspects.

8.5 Key Terms

Maintenance Modifications or changes or extensions which are requested


after the system is used for some times.

19
20

You might also like