Software analysis is a critical phase in the software development lifecycle, involving the examination and evaluation of a system's requirements and specifications. This phase sets the groundwork for defining the scope, developing cost estimates, scheduling project timelines, designing the software architecture, establishing testing strategies, and preparing user documentation.
To analyze software:
Requirements can come from many sources: assignee, customer, developer themselves, and if the situation is an iOS app, then App Store could have requirements.
Requirements might involve ambiguities, inconsistency or even incomplete due to the nature of them.
A model is a formal way to describe the behavior and express the requirement of a system.
Modeling means abstraction.
a family of graphical notations to describe and analyze software systems, especially those using an object-oriented approach. Based on standards managed by the Object Management Group.