Unit 1: Introduction
1.1 Software Engineering
What is your understanding of engineering ?
Distinguish between design engineering and production engineering.
State the working definition of engineering.
Is engineering a type of craft?
State the limitations of craft.
What is software engineering?
Software engineering is a creative design discipline. Explain the statement.
Is software engineering just coding? Explain.
Briefly explain the history of software engineering.
State the two core ideas of software engineering.
State the two core competencies that a software engineer should master.
To become an expert at learning, a software engineer must master how many core characteristics?
State the core characteristics that a software engineer must master in order to be an expert at learning.
Distinguish between working iteratively and working incrementally.
Shyam attempts to be empirical in many situations. What do you understand from this sentence?
Name the core ideas that help a software engineer to successfully manage complexity.
What do you understand by cohesion of software modules?
How is separation of concerns typically achieved in software engineering?
What is information hiding or abstraction? Why is it necessary?
What do you understand by coupling between software modules?
Should the cohesion of software modules be high or low?
Should the coupling between software modules be high or low?
Expand the abbreviation SWEBOK.
Who publishes SWEBOK?
Briefly explain the structure of SWEBOK.
How many knowledge areas does the SWEBOK contain? Name a few of them.
Name a few of the disciplines related to the field of software engineering.
1.2 Software Processes
What is a software process?
What is a software process model?
Name the two major types of software process models.
Distinguish between plan driven software process model and agile process model.
Name the three types of software process models.
With a neat picture, explain the waterfall model of software development.
Name the phases of waterfall model of software development.
What are the advantages and disadvantages of waterfall model of software development?
With a neat picture, explain the incremental model of software development.
What are the advantages and disadvantages of incremental model of software development?
Should a software be always developed from scratch? If not, which software process model helps building software from existing resources?
What is a software process activity? How many basic software process activities are there?
Name the four basic software process activities.
With a neat picture, describe the requirements engineering process.
Distinguish between software design and software implementation.
With a neat picture, describe the general model of the software design process.
How many key software design processes exist? Name them.
What do you mean by software validation?
Name the most commonly used software validation activity.
With a neat picture, explain the three stages of testing.
With a neat picture, explain the V model of software testing.
What do you mean by software evolution?
Name the two techniques that help reduce the cost of software rework due to change.
What is a software prototype? What are its benefits?
Distinguish between reusable and throw-away prototypes.
1.3 Agile Software Development
With a neat picture, distinguish between plan driven and agile development methodologies.
What is the aim of aim of agile methodology?
Name the five principles of agile methodology.
Name four agile methodologies.
With an example, explain scenarios or user stories.
What do you understand by refactoring?
What is Scrum methodology? How many phases it has?
Name three phases of Scrum.
What do you understand by the term product backlog ?
What is a Scrum? Who runs it?
What do you mean by a sprint ?
What do you mean by Velocity of a Sprint ?
With a neat picture, explain the Scrum Sprint Cycle.
What are the benefits of Scrum?
Name a few problems with agile methodology.
1.4 Project Management
What is a project? Give three examples of a project.
Name three important characters of a project.
With an example, distinguish between a project and an operation.
What do you mean by scope of a project?
What is a program? Give a few examples of programs.
What is a portfolio? Explain with an example.
Expand the abbreviation PMBOK.
What is PMBOK? Who publishes it?
Briefly describe contents of PMBOK Guide.
How many knowledge areas does PMBOK identify?
Name the knowledge areas identified by PMBOK.
How many process groups does the PMBOK identify?
Name the process groups identified by PMBOK.
Unit 2: Requirements & Architecture
2.1 Requirements Engineering
What is requirements engineering?
What is a requirement? Explain with an example.
Name the two types of requirements.
What are user requirements? Explain with an example.
What are system requirements? Explain with an example.
Who are system stakeholders?
With appropriate examples distinguish between functional, non-functional, and domain requirements.
Name a few sub-types of non-functional requirements.
With appropriate examples distinguish between goals and requirements.
Name a few metrics to measure non-functional requirements.
What do you understand by requirements elicitation?
Name a few techniques used for requirements elicitation?
Name a few ways of writing a system requirements specification.
With an example, explain a use-case.
Explain the UML support for documenting use cases.
Explain how would you validate requirements.
Explain how changes to requirements are handled.
2.2 System Modelling
What is system modelling?
Name four types of system models?
Name the UML diagram types used for each type of system model.
With an appropriate example, explain a context model.
With an appropriate example, explain an interaction model.
With an appropriate example, explain a sequence diagram.
With an appropriate example, explain a structure or class diagram.
With an example, explain how generalization is depicted in class diagrams.
With an example, explain how aggregation is depicted in class diagrams.
With an appropriate example, explain a state diagram.
What is model driven engineering ?
What are the advantages and disadvantages of model driven software engineering?
2.3 Architecture Design
What is architecture design ?
Name a few methods in which an architecture is represented?
With an example, explain box-and-line diagram for representing system architecture.
What are architectural design decisions? Give appropriate examples.
Name the four characters of a good architecture.
What are architectural views? Why are they needed?
Name the four types of architectural views.
Explain the 4 + 1 view model of software architecture.
What are architectural patterns? Give a few examples.
With an example, explain the Model-View-Controller (MVC) pattern.
With an example, explain the web application architecture using (MVC) pattern.
With an example, explain the layered pattern.
With an example, explain the repository pattern.
With an example, explain the client-server pattern.
With an example, explain the pipe-and-filter pattern.
Name a few typical application types giving examples.
Unit 3: Implementation
3.1 Design and Implementation
Expand the term COTS.
Name the five process stages of object-oriented design.
With an example, explain the term design pattern.
With an example, explain the Observer design pattern.
Name the seven quality attributes of a software product that needs attention.
Why is modifiability an important quality character that needs our attention?
Name three ways of addressing direct changes to a software.
Name three ways of addressing indirect changes to a software.
Name three measures of parameters.
Name a few ways of improving product performance.
Name the two security characteristics that must be addressed.
Explain immunity pertaining to software security.
How do you make a software immune to security attacks?
Explain resilience pertaining to software security.
How to you improve resilience of a software product?
Distinguish between reliability and robustness of software.
How do you improve reliability of a software product?
How to you improve resilience of a software product?
How do you improve usability of a software product?
Name the four focus areas of software implementation. (Hint: Implementation Deck: Slide 2 of 6)
Name the typical things that a coding standard checks (Hint: Implementation Deck: Slide 3 of 6)
What all can be reused in a software project? Give examples. (Hint: Implementation Deck: Slide 4 of 6)
Name the types of documentation that can be done during software implementation (Hint: Implementation Deck: Slide 6 of 6)
3.2 Software Testing
Name the two goals of testing (Hint: Ch 8 Testing, Slide 4, also slide 6)
With an example, distinguish between verification and validation (Hint: Ch 8 Testing, Slide 8)
With an example, distinguish between inspection and testing (Hint: Ch 8 Testing, Slide 10)
In a software development project, what all can be inspected and what all can be tested? (Hint: Ch 8 Testing Slide 11)
For inspection to take place, should the final software product be ready?
Do you need to execute the software program to perform an inspection? (Hint: Ch 8 Testing, Slide 12)
Name a few advantages of inspection. (Hint: Ch 8 Testing, Slide 13)
Are inspections and testing opposites? (Hint: Ch 8 Testing, Slide 14)
With a neat diagram, explain a model for software testing. (Hint: Ch 8 Testing: Slide 15)
Name the three phases of testing (Hint: Ch 8 Testing, Slide 16)
Name the three types of development testing (Hint: Ch 8 Testing, Slide 18)
Who carries out development testing? (Hint: Ch 8 Testing, Slide 18)
Name a few candidate units for unit testing. (Hint: Ch 8 Testing, Slide 19)
Write a note on automated testing (Hint: Ch 8 Testing, Slide 23)
Name an automation testing framework. (Hint: Ch 8 Testing, Slide 23)
Name two types of unit tests that can be written. (Hint: Ch 8 Testing, Slide 25)
Name two strategies for testing. (Hint: Ch 8 Testing, Slide 26)
Explain partition testing (Hint: Ch 8 Testing, Slide 27-28)
Create equivalence partitions for the given range of inputs: 3, 4, 7, 10, 11 (Hint: Ch 8 Testing, Slide 28)
Create equivalence partitions for the following ages: -16, -6, 0, 5, 6, 8, 12, 14, 18, 21, 24, 33, 56, 65, 78, 80, 93, 116. Name the partitions in a user-friendly manner.
How test cases must be written? Give a few general guidelines. (Hint: Ch 8 Testing, Slide 31)
What is used for component testing? (Hint: Ch 8 Testing, Slide 32)
What can go wrong during interface testing? (Hint: Ch 8 Testing, Slide 35)
Derive use-cases from the sequence diagram shown in page 361 of Reference Book R2.
With a neat picture, explain test driven development (Hint: Ch 8 Testing, Slides 44-46)
What are the benefits of TDD? (Hint: Ch 8 Testing, Slide 47)
What is regression testing? (Hint: Ch 8 Testing, Slide 48)
Can every type testing be a regression testing?
Explain release testing. (Hint: Ch 8 Testing, Slides 50-51)
Distinguish between release testing and system testing. (Hint: Ch 8 Testing, Slide 51)
Explain user testing. (Hint: Ch 8 Testing, Slides 58-59)
Explain three types of user testing. (Hint: Ch 8 Testing, Slide 59)
With a neat picture, explain the acceptance testing process. (Hint: Ch 8 Testing, Slide 60-61)
3.3 Software Evolution
Why software evolution is inevitable? (Hint: Ch 9 Evolution, Slide 3)
What is the difference between software evolution and software servicing? (Hint: Ch 9 Evolution, Slide 7)
Are changes made to the software when it is being phased out? (Hint: Ch 9 Evolution, Slide 7)
With a neat picture, explain the software evolution process. (Hint: Ch 9 Evolution, Slide 11)
With a neat picture, explain how are urgent change requests handled? (Hint: Ch 9 Evolution, Slides 14-15)
What is a legacy system? Give an example. (Hint: Ch 9 Evolution, Slide 19)
With a neat picture, explain elements of a legacy system. (Hint: Ch 9 Evolution, Slides 20-22)
Why it is very difficult to change legacy systems? (Hint: Ch 9 Evolution, Slide 25)
To deal with legacy systems, they are put into one of four buckets. Name them. (Hint: Ch 9 Evolution, Slide 28)
What should be done with - low quality legacy systems that are yielding low business value? (Hint: Ch 9 Evolution, Slide 28)
What should be done with - low quality legacy systems that are yielding high business value? (Hint: Ch 9 Evolution, Slide 28)
What should be done with - high quality legacy systems that are yielding low business value? (Hint: Ch 9 Evolution, Slide 28)
What should be done with - high quality legacy systems that are yielding high business value? (Hint: Ch 9 Evolution, Slide 28)
Name types of software maintenance activities. (Hint: Ch 9 Evolution, Slide 40)
Explain software re-engineering. (Hint: Ch 9 Evolution, Slides 49-51)
Name a few of the activities taken-up under software re-engineering. (Hint: Ch 9 Evolution, Slide 52)
Name a few example of bad-smells that you get from software code. (Hint: Ch 9 Evolution, Slide 58)
Unit 4: Project Management
4.1 Introduction to Project Management
Expand PMBOK.
How many knowledge areas does the PMBOK identify? (Hint: W3)
Name the ten project management knowledge areas identified by PMBOK. (Hint: W3)
Name the four criteria used to identify successful projects. (Hint: Ch22 slide 4)
What are the signs that a software project is in trouble? (Hint: Pressman, Sec 24.5)
Name the document that initiates a project (Hint: W3)
Define project scope.
Name the three types of risks. (Hint: Ch22 slide 11)
Give a few examples of project risks (Hint: Ch22 slide 12)
Give a few examples of product risks (Hint: Ch22 slide 12)
Give a few examples of business risks (Hint: Ch22 slide 12)
Name the four activities of risk management (Hint: Ch22 slide 13)
With a neat diagram, explain the project risk management process (Hint: Ch22 slide 14)
Name the two factors identified for each risk (Hint: Ch22 slide 18)
Name the four key strategies for managing people (Hint: Ch22 slide 28)
With a neat picture, explain hierarchy of human needs (Hint: Ch22 slide 30)
Name the three popular personality types (Hint: Ch22 slide 35)
Name the characteristics of a cohesive group (Hint: Ch22 slide 40)
4.2 Project Planning
Name the components of a project plan (Hint: Ch23 slide 17)
With a neat picture explain the project planning process (Hint: Ch23 slide 20)
Name the three things that are estimated in a project (Hint: Estimation deck, Slide 2)
Name the approaches to estimate software size (Hint: Estimation deck, Slide 3)
Explain the three points based estimation technique (Hint: Estimation deck, Slide 4)
Rakesh is traveling from Bengaluru to Chennai. In the best case, he takes about 6 hours to reach Chennai. In the worst case, he takes 9 hours. Most likely, he should reach Chennai in about 6.5 Hours. Calculate the three point estimate for the time taken by Rakesh to reach Chennai from Bengaluru. (Hint: Estimation deck, Slide 4). Also calculate the Standard Deviation. (Hint: SD = square of difference between worst case and best case divided by six).
An architect in a company estimates the software size to be 400000 LOC. His company has developers who can produce about 8000 Lines of code per month. On an average, the company pays each developers 1 Lakh Rupees per month. If the project is to be completed in eight months, calculate the number of developers needed, total effort required, and the cost of the development. (Hint: Estimation deck, Slide 5)
With a neat picture, explain the function point approach of estimating the product size (Hint: https://www.geeksforgeeks.org/software-engineering-functional-point-fp-analysis/)
List the five components of the Functional Point (Hint: https://www.geeksforgeeks.org/software-engineering-functional-point-fp-analysis/)
Consider a software project with the following information domain characteristic for the calculation of function point metric: Number of external inputs (I) = 30, Number of external output (O) = 60, Number of external inquiries (E) = 23, Number of files (F) = 08, Number of external interfaces (N) = 02. It is given that the complexity weighting factors for I, O, E, F, and N are 4, 5, 4, 10, and 7, respectively. It is also given that, out of fourteen value adjustment factors that influence the development effort, four factors are not applicable, each of the other four factors has value 3, and each of the remaining factors has value 4. Compute the value of function point metric. (Hint: https://www.geeksforgeeks.org/software-engineering-functional-point-fp-analysis/)
What size measure does the Use Case based estimation technique yield? (Hint: Estimation deck, Slide 8)
With a neat picture, explain the project scheduling process. (Hint: Ch23 slide 26)
Name the popular scheduling problems (Hint: Ch23 slide 27)
Name a few popular methods of presenting project schedules (Hint: Ch23 slide 28)
What is COCOMO? (Hint: Ch23 slides 20, https://www.geeksforgeeks.org/software-engineering-cocomo-model/)
Name the three types of COCOMO models (Hint: https://www.geeksforgeeks.org/software-engineering-cocomo-model/)
Give the formula used by COCOMO to estimate Effort, Duration, and team size (Hint: https://www.geeksforgeeks.org/software-engineering-cocomo-model/)
A project size of 200 KLOC is to be developed. Software development team has average experience on similar type of projects. The project schedule is not very tight. Calculate the Effort, development time, average staff size, and productivity of the project. (Hint: Use semi-detached model where a = 3, b = 1.12, c = 2.5 and d = 0.35. Use a scientific calculator)
4.3 Complexity Management
Not in scope for the current course.
4.4 Quality Management
Name the three contexts in which quality of a software is analysed. (Hint: Software Quality PPT, slide 2)
Defined the term quality based on various views. (Hint: Software Quality PPT, slide 3)
Name the seven quality models. (Hint: Software Quality PPT, slide 4)
With the help of a neat picture, explain McCall's quality model (Hint: Software Quality PPT, slide 5)
Name the eleven parameters that define quality as per McCall. (Hint: Software Quality PPT, slide 5)
Explain ISO 9126 quality model. (Hint: Software Quality PPT, slide 7)
Name the six aspects of quality identified by ISO 9126 model. (Hint: Software Quality PPT, slide 7)
Describe the ISO 9001 quality management system. (Hint: Software Quality PPT, slides 8-9)
Define software quality management. Name three of its principal concerns. (Hint: Ch24 slide 3)
Name the fifteen software quality characteristics. (Hint: Ch24 slide 13)
Name the nine core processes of ISO 9001 quality management system. (Hint: Ch24 slide 26)
4.5 Configuration Management
With a neat picture, explain various environments used in software development. (Hint Implementation, Slide 1)
What is configuration management? Why do you need it? (Hint: Ch25 slide 3)
Name the four key activities involved in configuration management. (Hint: Ch25 slide 4)
Compare the development, testing, and release phases. (Hint: Ch25 slide 7)
What is the reality of multi-version systems? (Hint: Ch25 slide 8)
Define the term Baseline (Hint: Ch25 slide 10)
Define the term Branching (Hint: Ch25 slide 10)
Define the term Codeline (Hint: Ch25 slide 10)
Define the term Configuration Item (Hint: Ch25 slide 10)
Define the term Mainline (Hint: Ch25 slide 10)
Define the term Merging (Hint: Ch25 slide 11)
Define the term Release (Hint: Ch25 slide 11)
Define the term Repository (Hint: Ch25 slide 11)
Define the term Version (Hint: Ch25 slide 11)
Define the term Workspace (Hint: Ch25 slide 11)
What is the name of the process that is used to manage codelines and baselines of a software? (Hint: Ch25 slide 13)
______ is useful to recreate a complete version of a software. (Hint: Ch25 slide 15)
A baseline could include versions from different codelines. True/False (Hint: Ch25 slide 16)
Name a few characteristics of version control system. (Hint: Ch25 slide 18)
What do you mean by system building? (Hint: Ch25 slide 33)
Unit 5: Hands On
5.1 Hands on Software Engineering
From the following text, identify potential classes and attributes
The SE VLabs Institute has been recently setup to provide state-of-the-art research facilities in the field of Software Engineering. Apart from research scholars (students) and professors, it also includes quite a large number of employees who work on different projects undertaken by the institution.
As the size and capacity of the institute is increasing with the time, it has been proposed to develop a Library Information System (LIS) for the benefit of students and employees of the institute. LIS will enable the members to borrow a book (or return it) with ease while sitting at his desk/chamber. The system also enables a member to extend the date of his borrowing if no other booking for that particular book has been made. For the library staff, this system aids them to easily handle day-to-day book transactions. The librarian, who has administrative privileges and complete control over the system, can enter a new record into the system when a new book has been purchased, or remove a record in case any book is taken off the shelf. Any non-member is free to use this system to browse/search books online. However, issuing or returning books is restricted to valid users (members) of LIS only.
The final deliverable would a web application (using the recent HTML 5), which should run only within the institute LAN. Although this reduces security risk of the software to a large extent, care should be taken no confidential information (eg., passwords) is stored in plain text.
From the following text, identify potential classes and attributes
Mr. Bose is the boss of this agency. Cabs are solely owned by the agency. They hire drivers to drive the cabs. Most of the cabs are without AC. However, a few comes with AC.
The agency provides service from 8 AM to 8 PM. Presently the service is limited only within Kolkata. Whenever any passenger books a cab, an available cab is allocated for him. A booking receipt is given to the passenger. He is then dropped to his home, office, or wherever he wants to go. In case the place is in too interior, the passenger is dropped at the nearest landmark.
Payments are made to the drivers by cheque drawn at the local branch of At Your Risk Bank. All kind of finances required for the business are dealt with this bank.
Recently Mr. Roy, neighbour of Mr. Bose, has given a proposal to book one of the cab in the morning everyday to drop his son to school, and drop him back to home later. Few other persons in the locality have also found the plan a good one. Hence, Mr. Bose is planning to introduce this "Drop to school" plan also very soon.
From the following text, identify potential classes and attributes
An automated teller machine (ATM) lets customers to withdraw cash anytime from anywhere without requiring involvement of any banking clerk or representative. Customer must insert his ATM card into he machine and authenticate himself by typing in his personal identification number (PIN). He cannot avail any of the facilities if the PIN entered is wrong. Authenticated customers can also change their PIN. They can deposit cash to their account with the bank. Also they can transfer funds to any other account. The ATM also provides options to the user to pay electricity or phone bill. Everyday morning the stock of cash in the ATM machine is replenished by a representative from the bank. Also, if the machine stops working, then it is fixed by a maintenance guy.
Draw a high level use case diagram for the text given in Question #1 of Section 5.1 (above)
Draw a high level use case diagram for the text given in Question #2 of Section 5.1 (above)
Draw a high level use case diagram for the text given in Question #3 of Section 5.1 (above)
Explain the UML support for modelling dynamic behaviour of software systems. (Hint: Handson deck, Slides: 17-21)
Draw a sequence diagram of the parking usecase of the Royal Service Station usecase.
Draw the communication diagram for the sequence diagram shown in slide 17 of Handson slide deck.
Name three types of design patterns. (Hint: Handson Deck, Slide 22)
Name the popular creational design patterns. (Hint: Handson Deck, Slide 22)
Name popular Structural design patterns. (Hint: Handson Deck, Slide 22)
Name popular behavioural design patterns. (Hint: Handson Deck, Slide 22)
Name the popular object oriented metrics used to evaluate the size measure and design quality of object oriented design.
How many metrics are there in the popular Chidamber-Kemerer Metrics Suite? (Hint: Handson Deck, Slide 26)
Name metrics that make up the CK Metrics Suite. (Hint: Handson Deck, Slide 26)
Calculate the specialization index (SIX) for a set of classes given that Number of operations overridden by a subclass (NOO) is 3, the depth of inheritance tree (DIT) is 2, and total class methods (TCM) is 36. (Hint: SIX = NOO x DIT / TCM)
Calculate the specialization index (SIX) for a set of classes given that Number of operations overridden by a subclass (NOO) is 6, the depth of inheritance tree is 2, and total class methods is 48.
5.2 Hands on Project Management
In a software project, three risks were identified. (R1) 45% chance of losing 30 thousand Rupees due to delayed delivery of reports module. (R2) 15% chance of spending of 40 Lakh Rupees due to customer changing product specifications. (R3) 30% chance of wasting 5 Lakhs due to delay in loading of customer supplied data. Calculate the combined risk exposure of the project.
A project size of 320 KLOC is to be developed. Software development team has average experience on similar type of projects. The project schedule is not very tight. Using COCOMO model, calculate the effort, development time and average staff size for the project. (Hint: Use semi-detached model where a = 3, b = 1.12, c = 2.5 and d = 0.35. Use a scientific calculator, Refer Handson deck, slide 29)
Consider a software project with the following information domain characteristic for the calculation of function point metric: Number of external inputs (I) = 20, Number of external output (O) = 10, Number of external inquiries (E) = 32, Number of files (F) = 10, Number of external interfaces (N) = 08. It is given that the complexity weighting factors for I, O, E, F, and N are 3, 5, 4, 10, and 7, respectively. It is also given that, out of fourteen value adjustment factors that influence the development effort, five factors are not applicable, each of the other four factors has value 4, and each of the remaining factors has value 5. Compute the value of function point metric. (Hint: Estimation deck, Slide 35)
A project manager in a company estimates the size of the software to be developed is likely to be 320 Function Points. His company has developers who can produce about 18 Function Points per month. On an average, the company pays each developers 1 Lakh Rupees per month. If the project is to be completed in six months, calculate the number of developers needed, total effort required, and the cost of the development.
The optimistic, most likely, and pessimistic durations of task T1 is 3, 5, 11 days, for task T2 is 4, 7, 12 days, and for task T3 is 2, 4, 8 days respectively. Calculate the expected duration and standard deviation for tasks T1, T2, and T3 using PERT.
For the given activities, draw the network diagram, identify the critical path and its duration. A-->B = 3 Days, A-->C = 4 Days, B-->D = 5 Days, C-->E = 6 Days, D-->F = 4 Days, D-->H = 6 Days, E-->F = 5 Days, E-->I = 7 Days, F-->G = 3 Days, G-->H = 4 Days, G-->I = 5 Days, H-->J = 4 Days, I-->J = 2 Days
Compute Estimate At Completion (EAC) and Variance At Completion (VAC) if both SPI and CPI influence the project work when given variables are Budget At Completion (BAC) = 35 Lakh Rupees, Earned Value (EV) = 27 Lakh Rupees, Planned Value (PV) = 24 Lakh Rupees, and Actual Cost (AC) = 30 Lakh Rupees. Also, identify whether the project is behind schedule and whether the project is within the budget.
In a project, each story is worth ten points. At the end of the sprint, your team has completed eight stories, but the ninth is only half complete. What is the velocity of the sprint? If the project includes 48 stories and the team performance remains the same, how many sprints are needed to complete the project?