1 (a) Investigate the Unified Modeling Language (UML) on the Internet. Write a
paragraph news brief describing the current state of the UML.
Unified Modeling language (UML) is a consistent showing language allowing creators to specify, imagine, theory and document things of a software system. Therefore, UML makes this manufactured article callable, secure and strong in performance. UML is a vital model involved in object-oriented for software development. Its custom realistic graphic system to produce visual model of software systems.UML diagrams can be divided into two categories. UML diagrams can be separated into two class. The UML goal is to provide standard notation that can be used by all object-oriented steps and select to ntegrate the best elements of precursor notation. The UML has been designed for a broad range of applications. Hence, it provides constructs for a broad range of systems and activities. The goals in the design of the UML summarize is :
Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.
Provide flexibility and specialization mechanisms to extend the core concepts.
Be independent of particular programming languages and development processes.
Provide a formal basis for understanding the modeling language.
Encourage the growth of the OO tools market.
Support higher-level development concepts such as collaborations, frameworks, patterns and components.
Integrate best practices.
(b) Investigate the Object Management Group (OMG) on the Internet. Write a report describing the purpose of OMG and what it is involved with besides
The Object Management Group is a syndicate of organizations whose aim it is to set standard in object-oriented system. The OMG is the group that ratified the UML an industry standard. In addition to the UML, the OMG is trustworthy for the development of other object-oriented products such as the Systems Modeling Language (System), which is a domain-specific in modeling language for Systems Engineering based on the UML. Where as UML is concentrated on software development, System is optimized for a broad range of systems and systems-of-systems. Other OMG qualify include the Model Driven Architecture (MDA), the Meta Object Facility (MOF), the XML Meta data Interface (XMI), the Common Warehouse Melodrama (CWM), the Common Object Request Broker Architecture (CORBA), and the Object Management Architecture (OMA).
(c) Using the Internet, find a set of CASE tools that support the UML. A couple of examples include Rational Rose and Poseidon. Find at least three additional ones. Write a short report describing how well they support the UML, and make a recommendation as to which one you believe would be best for a project team to use in developing an object-oriented information system using the UML.
One and only best commercial tools (besides the ones listed) is Spar x Systems’ Enterprise Architect. This is a much more affordable product than IBM’s Rational line. It also offers many of the same features including end-to-end visibility, speed, stability, and performance. It supports all UML 2.1 diagrams and has robust importing and exporting potentiality for code analysis and creation, document generation, and overall documentation. In status of good open-source, free CASE tools, StarUML is a solid performer. It runs on Microsoft Windows platforms, supports the UML 2.0 standard, provides a plug-in architecture for additional modules, and has a well designed interface. StarUML supports the most common 9 (out of 14) UML diagrams with automated code generation Java, C++ and C#. It also produces Microsoft Word, Excel, and PowerPoint documents.
(d) Suppose you were an analyst developing a new information system to automate the sales transactions and manage inventory for each retail store in a large chain. The system would be installed at each store and exchange data with a mainframe computer at the company’s head office. Would you use the Unified Process to develop the system or would you prefer one of the traditional approaches.
I would not suggest the Unified Process (UP) fewer the company has a strong custom of using it. Moreover, an message system normally involves rigid demand and a strong reliability constraint. It is, therefore, not an ideal type of project with which to lead an organization away from its established practices. Among the traditional suggestion, this project appears to be perfect for throway prototyping development. In this case, various information tasks can be improved, and the systems tested to determine best performance. Although the project probably will not be large enough for parallel improvement, various applications may be simultaneously improved, and then consolidated into one system. This is a perfect scene for the application of the Unified Process. The explanation is that this methodology excels at shared out object-oriented development. Also the big scope of the task means that the relatively high-cost of the UP would be more than offset by the savings induced by desirability and a distributed framework.
Discuss and compare any FIVE (5) Agile Development Methods in terms of its advantages, disadvantages and differences and other related issues.
I) Agile Modeling
Advantages of Agile model:
Customer satisfaction by rapid, nonstop delivery of helpful software.
Employed software is delivered infrequently (weeks rather than months).
Face-to-face voice communication is the best form of communication.
Close, daily group action between enterprise people and creator.
Continuous care to technical excellence and great design.
Daily adaptation to dynamic circumstances.
Even late changes in need are welcomed.
Disadvantages of Agile model:
In case of any software deliverable, particularly the large ones, it is hard to assess the effort required at the opening of the software development life cycle.
There is lack of importance on required creating and documentation.
The project can well get taken off path if the customer symbolic is not clear what final result that they want.
When to use Agile model:
When new modification need to be implemented. The immunity agile gives to change is very important. Fresh changes can be implemented at very small cost because of the rate of new increase that are produced.
To implement a new characteristic the creator need to lose only the work of a few days, or even only hours, to roll back and utilize it.
II) Dynamic Systems Development Model
is a software development methodology originally based on the Rapid Application Development methodology. This is an iterative and incremental suggestion that emphasizes continuous user involvement. Its main aim is to bring software systems on time and on the budget. This model simply works on the philosophy that nothing is improved absolutely in the first attempt and believe as an ever-changing operation.
Advantages of Dynamic Systems Development Model:
Users are extremely interested in the development of the system so, they are more likely to get a grip on the software development project.
In this model, basic practicality is delivered quickly, with more functionality being delivered at regular intervals.
This method give an easy way by creator to end-users
In this kind of development, suggestion projects are delivered on time and within a particular budget.
Disadvantages of Dynamic Systems Development Model:
The first thing is DSDM is costly to utilize, as it definite quantity users and developers both to be trained to employ it effectively. It may not be proper for small organizations or one-time projects.
It is a relatively new model, therefore, it is not very common and easy to understand.
III) Lean Development Methodology
concentration on the creation of easily changeable software. This Software Development model is more plan of action focused than any other type of agile methodology. The goal of this methodology is to create software in one-third of the time, with very special budget, and very less amount of required work flow.
Advantages of Lean Development Methodology:
The early elimination of the overall efficiency of the development process certainly helps to speeds up the process of entire software development which surely reduces the cost of the project
Delivering the product early is a definite advantage. It means that development team can deliver more functionality in a shorter period of time, hence enabling more projects to be delivered
Empowerment of the development team helps in developing the decision-making ability of the team members which created more motivation among team members.
Disadvantages of Lean Development Methodology:
Success in the software development depends on how disciplined the team members are and how to advance their technical skills
The role of a business analyst is vital to ensure the business requirements documentation is understood properly. If any organization doesn’t have a person with the right business analyst then this method may not be useful for them
In this development model, great flexibility is given to developer which is surely great, but too much of it will quickly lead to a development team who lost focus on its original objectives thus, it hearts the flow of entire project development work
IV) The Scrum Development Methodology
can be applied to nearly any project. This process is suited for development projects that are rapidly changing or highly emergent requirements. The Scrum software development model begins with a brief planning, meeting and concludes with a final review. This development methodology is used for speedy development of software which includes a series of iterations to create required software. It is an ideal methodology because it easily brings on track even the slowest progressing projects.
Advantages of Scrum Development:
In this methodology, decision-making is entirely in the hands of the teams
This methodology enables project’s where the business requirements documentation is not considered very significant for the successful development
It is a lightly controlled method which totally empathizes on frequent updating of the progress, therefore, project development steps is visible in this method
A daily meeting easily helps the developer to make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members
Disadvantages of Scrum Development:
This kind of development model is suffered if the estimating project costs and time will not be accurate
It is good for small, fast moving projects but not suitable for large size projects
This methodology needs experienced team members only. If the team consists of people who are novices, the project cannot be completed within exact time frame
V) Feature Driven Development
is an iterative software development methodology intended for use by large teams working on a project using object-oriented technology. This type of model is good for organizations that are transitioning from a phase-based approach to an iterative approach, this methodology also known as an FDD methodology.
Advantages of FDD Methodology:
FDD Helps to move larger size projects and obtain repeatable success
The simple five processes help to bring work done in a short time and easiest manner
This type of model is built on set standards for software development industry, so it helps easy development and industry recognized best practices.
Disadvantages of FDD Methodology:
Not an ideal methodology for smaller projects so, it is not good for an individual software developer
High dependency on the main developer means the person should be fully equipped for an act as coordinator, lead designer, and mentor
No written documentation provided to clients in this methodology so, they are not able to get a proof for their own software.
(a) To prepare requirement list.
A class offered by the university.
A specific delivery of the course for a specific semester you could run the same course in parallel sessions in the semester. Includes the days of the week and times it is offered.
The unabridged catalog of all courses offered by the university.
All the professors teaching at the university.
The system used for processing billing information.
The evaluation of a particular student for a particular course offering.
A person teaching classes at the university.
All the grades for all courses taken by a student in a given semester.
All the students enrolled in a particular course offering.
A person enrolled in classes at the university.
The courses a student has selected for the current semester.
The history of the grades for all courses, for a particular student sent to the finance system, which in turn bills the students.
Multiple users must be able to perform their work concurrently.If a course offering becomes full while a student is building a schedule including that offering,the student must be notified.
The desktop user-interface shall be Windows 95/98 compliant.
The system shall support up to 2000 simultaneous users against the central database at any given time, and up to 500 simultaneous users against the local servers at any one time.The system must be able to complete 80% of all transactions within 2 minutes.
The system must prevent students from changing any schedules other than their own, and professors from modifying assigned course offerings for other professors.Only Professors can enter grades for students.Only the Registrar is allowed to change any student information.
(b) To develop use case model and description