December 30, 2007
Quiz 1 - Result Summary
December 21, 2007
Week 9 (starting 10 Dec 2007) - the next posting will be in Jan 2008
- facilitate better communication and understanding
- validate correctness against the requirements
- establish a blue-print of the software solution
In this module, we will only focus on how to construct simple class diagrams using basic notations such as:
- Classes with class names, attributes and operations
- Association with details of rolenames, multiplicity
- Generalization
Consider the following example, a class diagram showing the information of:
- 3 classes : BankAccount, AccountHolder, CashAccount and CreditCardAccount
- Each class is described with its own attributes and operations
- BankAccount is given a role-name of "Saving Account"
- Details of the multiplicity is : ONE BanckAccount belongs to ONE AccountHolder, ONE AccountHolder can only create ONE BankAccount (or Saving Account)
- 3 classes (BankAccount, CreditCardAccount, CashAccount) are related using Generalization which means "is-a-kind-of"
Do the following exercise: Identify three domain classes about the different kind of boats described. Use Unified Modelling Language (UML) to illustrate the details and the relationships among them.
“In general, all boats kept in the inventory can be described by its registration number, the manufacturer and the year of purchase. However, there are 2 special types of boats that need additional information to be stored in the database. These include the power boats which have to be identified by the number of engines and the fuel type. For sail boats, the number of sails have to be recorded.”
December 3, 2007
Week 7 (starting 26 Nov 2007)
We have also mentioned that we will be focusing on 3 QC activities:
- Review (we had done a simple review exercise during practical last week)
- Testing (we focus on Black Box Testing Techniques : Equivalence Partitioning and Boundary Value Analysis)
- Change Control (we have listed out the steps for a simple Change Control procedure)
The diagram below shows the steps of Change Control.
With that, we have concluded part I of this module (i.e. the general concepts of Software Engineering Practices).
In the next 2 weeks, we will look into Software Modelling using Unified Modelling Language (UML).
November 22, 2007
Week 6 (starting 19 Nov 2007)
November 19, 2007
Week5 (starting 12 Nov 07)
November 9, 2007
Week 4 (starting 5 Nov 2007)
For Project Monitoring and Control and Requirement Management Process:
Hopefully with these additional information, you can understand the 3 process areas better. In fact, by doing the proposal for practical 4, you have also answered the tutorial 3 Q4, 5 and 6.
Next week will be self directed learning...I have posted the relevant materials to learn 2 QA tools - Pareto Chart and Cause-n-Effect Diagram. Happy reading.. 8-)
November 1, 2007
Week 3 starting 29 Oct 2007
We further study the overview of CMMI (Capability Maturity Model Integration) which is a model that highlight how various categories of processes can be used to improve the quality of software development processes. It allows organizations to choose the way they want to improve the software processes by adopting the staged or continous representations.
- Staged representation - focus on a set of processes in every step of the maturity levels that enable the organizations to have a predefined and proven improvement path.
- Continuous representation - allows improvements of different processes to be performed at different capability levels based on the organization needs and objectives.
There are many process areas (total 22) in CMMI and they are catogrized into Organizational processes, Project Management processes,, Engineering processes and Support processes. We will only be focusing at the following process areas as they are the fundamentals processes in the software development life cycle.
- Project Planning - this process area is to establish and maintain project plans that define the project activities throughout the development life cycle
- Project Monitoring and Control - this process area is to provide monitor the project progress so that appropriate corrective actions can be taken when the project performance deviates significantly from the plan
- Requirement Management - this process area is to manage the requirements in terms of understanding what the users' needs and identify any inconsistency between the requirements and the work products.
- an enterprise enviornment is a dynamic business environment
- streamlining the business operations and development approach using well defined standard across the organization level is critical for an effective and efficient company
- the process centre -approach helps to ensure a smoother execution of complex software development projects that brings optimization of business operations such as: planning based on statistics than by experiences, focusing on processes rather than product..etc
To let you have a feel of what process improvement is, the practical in week 4 will require you to study in detailed the process areas of project planning, project monitoring and control, requirement management and then use the recommended best practices to suggest improvement of case study. Your proposal (in power-point slides) should include the following contents. I will let you know when to submit your proposal during the lecture next week.
- Introduction to process improvement (what is it and why we need it?)
- What are the current problems
- What are the recommendataions to resolve these problems
- Explain briefly on the implementation of these best practices
Now that you have some ideas of software proesses, we can move on to use some simple software quality tools that can help us to analyse problems encountered in these proesses. See you next week.
October 26, 2007
Week 2 (starting 22 Oct 2007)
- Waterfall (and modified Waterfall)
- This model forms the fundation of all development models and
- Typically phases are Planning, Requirement Gathering, Requirement Analysis, Design, Implementation, Testing and Support.
- Some constraints found for Strictly Waterfall model could be: no concurrent activities is allowed; only deliver at the end of the implementation phase
- To overcome these constraints, we used Modified Waterfall model - i.e. overlapping of relevant phases
2. Unified Process (Iterative and Incremental approach)
- From developers' perspective, this approach means repeating the basic Waterfall processes in each iteration and incrementally build the system functionalities.
- From customers' perspective, this approach provides opportunities for feedback and comments in reviewing the intermediate deliveries of the system. This benefits both developers and customers as they are more involved and build confidence in developing the system.
We illustratred the iterative and incremental development approach by the example of building a Video Rental System where the features to be included are:
- Store records of all video discs
- Store records of all customer details
- Handle daily rental business (i.e. rent and return)
- Generate monthly sales report
The customer is very sure of the requirements for each of these functions..however, he needs you to deliver the functions incrementally so that he can slowly prepare the necessary records for operations in 6-months’time.
To plan for the iterative and incremental development approach, we will link these functions in sequence so that the intermediate releases are logical. The various iterations are shown in the diagram below.
So by now, you have an idea of what software development models are like. In future, you will come across more other kinds of development models but the fundations are still the same as illustrated in the above 2 models.
For practical, we had looked into Microsoft Office 2000 case study to understand how the develpment enviornment evolved for different stages of building the office product suite. Let me just highlight some of the critical factors that made their Office 2000 project successful.
- define clearly the vision of the project to allow every team members know the common goals and work towards it
- maintain good working relationships between the project managers, developers and testers
- adopt milestone driven approach to track the progress
- use daily build to incrementally link up all the source code
- conduct code review to identify defects before executing the code
October 16, 2007
Week 1 (starting 15 Oct 2007)
For week 1, we have an overview of what software engineering is all about. I hope by completing the tutorial and practical this week, you can have an understanding of what to expect in this module. Lets' recap some of the main points discussed.
- Software engineering suggests to follow a systematic approach to develop software that is of good quality. Or to put it simply, it enable us how to work as a team using scientific and systematic approach to develop a piece of quality software.
- A process defines a series of steps to execute a task. It helps to identify the required inputs to do the task and ensures an expected output to be produced.
- As there are many tasks to be executed in a software development project, there will be many processes to govern each of these tasks. These processes can then be presented as a process model to to show different processes (plan the schedule, gather requirements, coding, testing) that to be used in software development.
- We used Microsoft Word as an example and deduced that a piece of quality software comes with some good attributes like having easy to use, online help available, basic editing functions (open, save, delete, print, font size, styles, colours), reliable..etc.
- We also recognised soem challenges faced in software development may include working as a team, having good time management, meeting tight deadlines, having the right technical skills for the development..etc. The best practices in software engineering will help us to address some of these problems.
- We concluded the overivew by saying that having a well defined software development process in the enterprising organizations is critical as it helps to overcome the potential challenges and increase chances of project success.
In the practical, we have read about the 10 Best Practices recommended for Software Development Project. They are listed below. Best practices, derived from the past experiences, are the effective and efficient way of doing things. By following these best practices, we hope to aviod the problems which would have been encountered. I have also asked you to identify 2 B.P. that you think will be most useful in projects. The consolidated outcome is indicated above. The number in brackets are your selections.
- Recruit skilled and experienced people (51)
- Use 'leading-edge', not 'bleeding-edge' technology (1)
- Use the approprite development process (12)
- Provide the right tools (41)
- Use source-control management (4)
- Apply sound estimating techniques (3)
- Break efforts into mini-milestone tasks (17)
- Track all project hours (18)
- Understand the only constant is change (2)
- Provide project leadership (35)
- Recruit skilled and experienced people
- Provide the right tools
- Provide project leadership
- Track all project hours
- Break efforts into mini-milestone tasks
- Use the approprite development process
The first 3 choices don't come as surprises to me. But it was the other 3 that make me feel glad. Because they are going to be taught in this module! There is a matching of customers' needs to my product (It1573). Great! I have also conducted an activity on Requirement Gathering (about 20min) during practical to let that you experienced 'how difficult' it can be to know what the customers really want for their intended system. Two scenario were created separately for 2 practical sessions.
- To generate a monthly summary report for the medical claim of the Medical Claim System in Visible Sound Pte Ltd (Wednesday)
- To capture the rental policy of the Rental System for Visible Disc Pte Ltd (Thursday)
- Having the relevant domain knowledge helps in understanding the requirements better
- Interviewing customers is one of the ways to get more detailed requirements (other alternative can be through survey)
- It is important to know the correct requirements right at the beginning