Introduction
Part A
1. (a)Unified Modeling Language (UML)
UML is a standardized modeling language comprising of sets of diagrams, created to help system and software developers for determining, visualizing, constructing and documenting software systems as well as business demonstrating and also used for other non-software system. In simple words, UML is a way of visualizing a software program using a collection of diagrams. UML was created by Object Management Group(OMG) in the year 1997.
The reason UML is used is to provide a standard notation that can be used by all object oriented methods. UML was created to common, semantically and syntactically rich visual modeling language for architecture, design and implementation of complex software systems. UML is similar to a blueprints that are used in other fields. However, UML is not a programming language. The drawing packages of UML is familiar to most people, so it is easy to design and create. This is the reason UML replaces the previous way in designing for software development. UML reduces risk and provides a way for testing the system architecture of the system before coding begins. This keeps away from mistake in system. UML also promotes a deeper understanding of the system. This makes analysts, architects, developers, stakeholders and users to understand the system created better. An example of company using UML is IBM.
The advantage of UML is that it has flexibility and can be customized to suit company technology or workplace. Besides that, UML is easy to be used to model application structure, behavior as well as business process. UML also helps in assessing security, tracking, guidelines and performance of a system. UML has a wide reach in visual language.
The weakness of previous design in System Analysis and Design (SAD) is that it is time consuming. SAD takes a lot of time to design and create. It also takes so much time to analyze the project. It also makes it difficult to create the design by the desired date. Usually if any employee is not trained using SAD technique, the company is required to spend time and money on training them this difficult system.
References
UML Overview. (2018, January 08). Retrieved from https://www.tutorialspoint.com/uml/uml_overview.htm
Bell, D. (2003, June 15). An introduction to the Unified Modeling Language. Retrieved from https://www.ibm.com/developerworks/rational/library/769.html
(b)Model Driven Architecture
Model driven architecture(MDA) is a software design approach for the development of software systems, application design and implementation. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model driven architecture is a type of domain engineering and supports model driven engineering of software system. In software engineering, MDA is useful because the approach enables developers to have a clear picture of the end products the user wants. This model was launched by the Object Management Group(OMG) in the year of 2001.
(c)Computer-aided software engineering(CASE) Tools for UML
The CASE tools for UML can be divided into two:
1) Open Source UML Tools: StarUML, Umbrello, AndroMDA
2) Commercial UML Tools:
IBM Rational Rose XDE
License: Proprietary Software (IBM EULA)
Rational rose is a software that is used to design software using UML. It provides a set of model driven capabilities to develop software applications using Ada, ANSI C++, C++, COBRA, Java, Java EE, Visual C++ and Visual Basic. Can be used for windows Linux and Unix. This software is used for analysis of code patterns, to do forward and also reverse engineering. This software provides code quality analysis abilities as well as code generation with configurable model to code synchronization capabilities.
https://www.techrepublic.com/article/rational-rose-simplifies-software-development/
https://www.predictiveanalyticstoday.com/ibm-rational-rose/

Poseidon
License: Proprietary Software
The UML version of Poseidon was based on the Poseidon DSLs platform. With a complete set of diagrams such as class, package, use case, state, component, sequence and activity it is a great UML tool. With massive improvement in the stability, performance, scalability, reliability and the customization. It is believed that the Poseidon for UML has the best user interface so it makes it user friendly and easier to use. The purity of Poseidon focuses fully on the productivity of the modeler and the UI is reduced to the maximum to allow the user to work directly from the diagram. Programming language used is Java. The features of Poseidon include reliability, tool chain integration, flexibility, performance, scalability and purity.
http://www.gentleware.com/new-poseidon-for-uml-8-0.html
https://www.predictiveanalyticstoday.com/poseidon/

Visual Paradigm
License: Proprietary Software
Visual Paradigm is a case tool that supports UML 2. This software can be used for system modeling, enterprise architecture, project management, user story mapping, user experience design, process mapping, code engineering, database engineering and team collaboration. Visual Paradigm is a cross platform tool that uses java. Visual Paradigm has all the UML diagrams and ERD tools that is essential in system and database design. The features of visual paradigm is used for agile project management, business process, mapping, entity relation diagram, data flow diagram, code engineering, database engineering, wireframe, matrix and business rules.
https://www.predictiveanalyticstoday.com/visual-paradigm/
https://www.visual-paradigm.com

Microsoft Visio
License: Proprietary Software
The latest version of Microsoft Visio which is version 2016 has better usability and user friendly features. There are many choices in Visio which makes sharing presentation much easier. It is easier to send flowcharts and viewers are able to download from Microsoft’s website. The improved security measures make diagrams and presentation work can be password protected. User has full control on who can see and edit Microsoft Visio files. There are options to export presentation into HTML or PDF formats. There are options to create business modeling notation(BPMN), organizational charts, diagrams and mind maps. Visio offers UML, network and Venn diagram presets. Visio also provides step by step tutorial.
The disadvantage of Visio is that it is not compatible with iPads, Mac computers or Android tablets. So, it does not let the viewer to edit the charts or even add comments. This software is also not cloud based, so to use the files, it is needed to be downloaded.
https://products.office.com/en-CA/visio?l;tab=tabs-3
https://www.predictiveanalyticstoday.com/visio/

Sparx Enterprise Architect
License: Proprietary Software
Enterprise Architect is an enterprise wide solution to visualize, analyze, model, test and maintain all of your systems, processes, software and architecture. Enterprise Architect is one of the best platform to help stay in control of workspace, support team and also enables collaboration to build the most complex projects. The features of this software includes UML design, effective project management, high value of end to end modeling, high performance model repository, end to end traceability, powerful document generation. This software also enables user to model, design, stimulate, prototype, build, test, manage and trace from vision to solution. Enterprise Architect also has a user guide to help understand and use the software.
https://www.predictiveanalyticstoday.com/sparx-enterprise-architect/
http://www.sparxsystems.com
(d)Methodology
In my opinion,
2.Agile Development Methods
I. Extreme Programming (XP)
The most important practice in XP is team work among managers, customers and developers. This improves a software project in communication, simplicity, respect, feedback and courage. XP approaches in producing high quality software quickly and continuously based on user requirements. This method promoted high customer involvement, rapid feedback loops, continuous planning, continuous testing and close teamwork to deliver software at frequent interval (1-3 weeks).
Advantages
1. End users are actively involved in software development process.
2. Team feedback is taken seriously and a lot of focus on self-improvement.
3. Best practices are strictly followed within the teams.

Disadvantage
1. Documentation is given less emphasis. Therefore giving reference to issues in the past is difficult.
2. Difficult to bring customer into the team due to distant from the development team.

https://www.versionone.com/agile-101/agile-methodologies/

II. Kanban (“visual signal” or “card” in Japanese)
Kanban is a technique for managing software development process in a highly efficient way. Kanban was introduced by Toyota following Toyota’s “just in time” (JIT) production system. Kanban uses the power of visual information by using sticky notes on whiteboard to create a picture of work. Kanban works based on using visualize work, limit work in process, focus on flow and continuous improvement.
Advantage
1. Ability to drive down costs and waste by improving flow of production.
2. Flexibility in production.
3. Increases output and problems to be visible quickly.

Disadvantage
1. Less effective in situation where resources are shared.
2. Changes is product demand may cause problems.
3. Any variability will affect the functioning system.

https://www.atlassian.com/agile/kanban

https://leankit.com/learn/kanban/what-is-kanban/

III. Scrum
Scrum is similar or a subset to XP. Scrum is a flexible product development strategy where a development team works as a unit to reach a common goal. Scrum principles includes iterative and incremental development, empiricism, continuous improvement and teamwork. In scrum methodology, the product owner works with the team to identify and prioritize system functionality in the form of a product back log which consist of product features, bug fixes and non-functional requirements. The development team is responsible for delivering potential shippable product increment at the end of each Sprint. The development team analyze, design, develop, test and document the project. The Scrum Master is to make sure the team deliver the sprint goal. The Scrum Master acts as a buffer between the team and any influences. The Scrum Master also enforces the rules and protect the team to keep the team focused on the task.

Advantage
1. High level of communication observed in team. This increases focus on problem solutions, product enhancement and team improves via feedbacks.
2. Offers certification, hence it is easy for organization to know if a person expert using this method.
3. Taken seriously in business.

Disadvantage
1. Poorly documented.
2. Product owners can lose control on project.
3. Changing requirements makes customers keep demanding more functionalities.

https://www.codeproject.com/articles/604417/agile-software-development-methodologies-and-how-t

IV. Feature Driven Development(FDD)
FDD is a process which is highly oriented on resulting out small blocks of client valued functionality. This makes developers using FDD to come up with working features every two weeks. FDD also able to track down project progress accurately. The purpose of FDD is to deliver a tangible working software repeatedly in a timely manner. The processes in FDD includes overall model development, listing build feature, planning, design and feature building. FDD is ideal for business system that rapidly changes over time. Also used for web designing and development projects.
Advantage
1. Multitasking is possible.
2. Can be used for complex applications because documentation and reports are created.

Disadvantage
1. High complexity making this method of no use for smaller projects.
2. Less communication within and out of team. Therefore, teams learn less from others.

http://sliitmscfdd.wikidot.com/introduction-to-fdd

V. Dynamic Systems Development Method(DSDM)
DSDM develops system dynamically. This methodology is independent of tools. It can be used with both structured analysis and design approach. DSDM uses incremental prototyping. This method is useful for the systems to be developed in a short time and the requirements cannot be frozen at the start of application building. DSDM provides a phase framework consisting of feasibility and business study, functional prototype, design, build and implementation.
Advantage
1. Allows efficient project management and strong control on project lifecycle.
2. Requirement is prioritized making this method useful in delivering important functionalities first.

Disadvantage
1. Documentation is complex and time comsuming.

Dynamic Systems Development Method (DSDM)


http://www.freetutes.com/systemanalysis/sa2-dynamic-system-development-method.html

XP vs Kanban vs Scrum vs FDD vs DSDM
Documentation
CASE Tools Differences
XP and Scrum Do not put a lot of emphasis on documentation.
FDD Spend sufficient amount of time in documentation.
DSDM
Requires some documentation to be created and the depth of documentation is less that FDD and more than XP.
Kanban Spend less time on documentation. Documentation in the form of cards.

End user involvement
Case Tools Differences
XP End user is actively involved.
Scrum Product owners represents end users.
DSDM End users participate in all of the incremental releases.
FDD End users participate through reports.

Team meetings
Case Tools Differences
XP and Scrum Informal daily stand up meetings.
FDD and DSDM Information sharing is through documents.
Kanban Meetings are optional. Can be entirely avoided or agreed upon regular or on demand basis.

Size of projects
Case Tools Differences
XP Smaller projects
Scrum, FDD and DSDM Projects for any size

Sprint Cycle
Case Tools Differences
XP 1 week to 6 weeks
Scrum 2 to 4 weeks
FDD Can have smaller sprint cycle (2 days)
Up to 2 weeks based on project requirement.
DSDM Advocates producing 80% of solution in 20% of the time.
Kanban Continuous flow

Comparison of Key Methodologies in AGILE

3.Case Study
(a)Requirement list for MOHO application
Actor
1. Customer
2. Salesperson
3. Warehouse Staff
4. Database Admin

No Requirement Description
1. Equipment Database List of all MOHO company products for users to select from. To keep track of equipment count.
2. User Database List of all registered users and for cashier to keep track of user purchase. To track payment status.
3. Application User interface for users to choose equipment.
4. Design Application design and interface for mobile app and website.
5. Equipment identity Users to place order to make equipment purchase.
6. Equipment recommendation Provide recommendation for the users based on their choice of equipment purchase.
7. Transportation option To provide users with transportation choices.
8. Transportation tracker Provide user information on shipment status. To alert warehouse manager of shipment status.
9. Equipment Transport Provide cart for user to transfer equipment.
10. Customer feedback To get user complaints for improvement of customer satisfaction.

(b)Case model and description
(c)Class model and description
Conclusion

Post Author: admin