Questions No 02 Marks (5)
Consider a scenario where we have to perform some operations on the basis of the number. If the number
is odd, perform the following operations:
Add 5 to the number
Multiply it by 5
Display the number
If the number is even, then perform the following operations:
Add 7 to the number
Multiply it by 7
Display the number
At the end add 20 to the number regardless if it is even or odd. According to the above scenario, the activity diagram is given below:
Redraw the above diagram by using Decision and Merge nodes.
Suppose you are working as a team lead in the software house and a task is assigned to you. The task is to develop two different software applications. One of them is a large-scale industrial software application and the other is small scale software application. As a team lead, you have to decide a development model for this task. Will you use the same development model for both the software applications or use different models for them? Discuss your solution with solid reasoning.
A software project manager is the most important person inside a team who takes the overall responsibilities to manage the software projects and play an important role in the successful completion of the projects. A project manager has to face many difficult situations to accomplish these works. In fact, the job responsibilities of a project manager range from invisible activities like building up team morale to highly visible customer presentations. Most of the managers take responsibility for writing the project proposal, project cost estimation, scheduling, project staffing, software process tailoring, project monitoring and control, software configuration management, risk management, managerial report writing and presentation and interfacing with clients. The task of a project manager are classified into two major types:
Project monitoring and control
Project planning is undertaken immediately after the feasibility study phase and before the starting of the requirement analysis and specification phase. Once a project has been found to be feasible, Software project managers started project planning. Project planning is completed before any development phase starts. Project planning involves estimating several characteristics of a project and then plan the project activities based on these estimations. Project planning is done with most care and attention. A wrong estimation can result in schedule slippage. Schedule delay can cause customer dissatisfaction, which may lead to a project failure. For effective project planning, in addition to a very good knowledge of various estimation techniques, past experience is also very important. During the project planning the project manager performs the following activities:
Project Estimation: Project Size Estimation is the most important parameter based on which all other estimations like cost, duration and effort are made.
Cost Estimation: Total expenses to develop the software product is estimated.
Time Estimation: The total time required to complete the project.
Effort Estimation: The effort needed to complete the project is estimated.
The effectiveness of all later planning activities is dependent on the accuracy of these three estimations.
Scheduling: After completion of estimation of all the project parameters, scheduling for manpower and other resources are done.
Staffing: Team structure and staffing plans are made.
Risk Management: The project manager should identify the unanticipated risks that may occur during project development risk, analysis the damage might cause these risks and take risk reduction plan to cope up with these risks.
Miscellaneous plans: This includes making several other plans such as quality assurance plan, configuration management plan, etc.
The order in which the planning activities are undertaken is shown in the below figure:
Project monitoring and control
Project monitoring and control activities are undertaken once the development activities start. The main focus of project monitoring and control activities is to ensure that the software development proceeds as per plan. This includes checking whether the project is going on as per plan or not if any problem created then the project manager must take necessary action to solve the problem.
Role of a software project manager: There are many roles of a project manager in the development of software.
Lead the team: The project manager must be a good leader who makes a team of different members of various skills and can complete their individual task.
Motivate the team-member: One of the key roles of a software project manager is to encourage team member to work properly for the successful completion of the project.
Tracking the progress: The project manager should keep an eye on the progress of the project. A project manager must track whether the project is going as per plan or not. If any problem arises, then take necessary action to solve the problem. Moreover, check whether the product is developed by maintaining correct coding standards or not.
Liaison: Project manager is the link between the development team and the customer. Project manager analysis the customer requirements and convey it to the development team and keep telling the progress of the project to the customer. Moreover, the project manager checks whether the project is fulfilling the customer requirements or not.
Documenting project report: The project manager prepares the documentation of the project for future purpose. The reports contain detailed features of the product and various techniques. These reports help to maintain and enhance the quality of the project in the future.
Necessary skills of software project manager: A good theoretical knowledge of various project management technique is needed to become a successful project manager, but only theoretical knowledge is not enough. Moreover, a project manager must have good decision-making abilities, good communication skills and the ability to control the team members with keeping a good rapport with them and the ability to get the work done by them. Some skills such as tracking and controlling the progress of the project, customer interaction, good knowledge of estimation techniques and previous experience are needed.
Skills that are the most important to become a successful project manager are given below:
Knowledge of project estimation techniques
Good decision-making abilities at the right time
Previous experience of managing a similar type of projects
Good communication skill to meet the customer satisfaction
A project manager must encourage all the team members to successfully develop the product
He must know the various type of risks that may occur and the solution for these problems
Steps to develop Activity Diagrams
The steps below outline the major steps to take in creating a UML Activity Diagram.
Finding system Actors, Classes and use cases
Identifying key scenarios of system use cases
Combining the scenarios to produce comprehensive workflows described using activity diagrams
Where significant object behavior is triggered by a workflow, adding object flows to the diagrams
Where workflows cross technology boundaries, using swimlanes to map the activities
Refining complicated high level activities similarly, nested activity diagrams
Question No. 1 [Marks = 5]
The following UML activity diagram shows typical document routing system in offices, the clerk generates a draft document, after which it is forwarded to manager for review. The manager sends original document to “Accounts” section while the copy of the document with comments is moved towards “Records” section. Both (Accounts & Records) section forward the consolidated document to Head office for final approval, after which the document is approved and financial bill is generated.
The diagram shows execution of two activities i.e. “Accounts” and “Records” in parallel. Redraw the above diagram by showing this parallelism using Joins/forks notation.