Designing software applications

Slides:



Advertisements
Similar presentations
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Advertisements

Site Skin Structure Services Space plan Stuff Software Architecture and Software Architecture Patterns (1)
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
Using Architecture Frameworks
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Software Architecture in Practice
SE 555 – Software Requirements & Specifications Introduction
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
CPTE 209 Software Engineering Summary and Review.
What is Enterprise Architecture?
1 WEB Engineering Introduction to Electronic Commerce COMM1Q.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Software Requirements Engineering CSE 305 Lecture-2.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Lecture 7: Requirements Engineering
NETE Computer Network Analysis and DesignSlide 1 Documenting Network Design NETE-4635 Computer Network Analysis and Design.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Architecture Who Cares?. Architecture The fundamental organization of a system, embodied in 1) its components, 2) their relationships to each other and.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
Basic Concepts and Definitions
Documenting Software Architectures. Outline  Introduction  Uses of Architectural Documentation  Views  Choosing the Relevant Views  Documenting a.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 12: Architecture
The Components of Information Systems
Chapter 1 The Systems Development Environment
PLM, Document and Workflow Management
Chapter 2 Database System Concepts and Architecture
The Development Process of Web Applications
Building Custom Workflows
Chapter 13 Architectural Design
OO Methodology OO Architecture.
Chapter 13 Architectural Design
Distribution and components
Systems Analysis – ITEC 3155 Evaluating Alternatives for Requirements, Environment, and Implementation.
IT Roles and Responsibilities
Chapter 1 The Systems Development Environment
Physical Architecture Layer Design
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
#01 Client/Server Computing
Chapter 1 The Systems Development Environment
2018 Real Cisco Dumps IT-Dumps
The Components of Information Systems
MBI 630: Systems Analysis and Design
Software Architecture and
IT Infrastructure: Hardware and Software
Software Connectors – A Taxonomy Approach
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS 425/625 Software Engineering Architectural Design
Lecture 1: Multi-tier Architecture Overview
Chapter 12: Physical Architecture Layer Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Chapter 13 Architectural Design
UML profiles.
An Introduction to Software Architecture
IT Infrastructure: Hardware and Software
Chapter 9 Architectural Design.
Information System Building Blocks
Chapter 1 The Systems Development Environment
#01 Client/Server Computing
Presentation transcript:

Designing software applications Lection 1

General information 8 lections 8 labs

General information Pavel I. Banokin Office 103a banokin@tpu.ru

Plan Software design and architecture Software architect role Software architecture documentation

Software design A process of a software artifact specification creation. the activity following requirements specification and before programming

Software design UI & UX design Low-level design High-level design Algorithms design Internal component structure design High-level design Architecture design

Architecture Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. [ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-Intensive Systems]

Architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. [L.Bass, P.Clements, R.Kazman, Software Architecture in Practice (2nd edition), Addison-Wesley 2003]

Architecture Defines Structure Splits an application into a set of: components, modules, objects, other units.

Architecture Specifies Component Communication Synchronous ( /ˈsɪŋkrənəs/) request-reply Asynchronous

Architecture Addresses Nonfunctional Requirements Technical constraints Business constraints Quality attributes

Architecture: technical constraints Certain technologies that the application must use. “We only have Java developers, so we must develop in Java”. “The existing database runs on Windows XP only”. Usually nonnegotiable.

Architecture: Business constraints For business, not technical reasons. Example 1: “In order to widen our potential customer base, we must interface with XYZ tools”. Example 2 “The supplier of our middleware has raised prices prohibitively, so we’re moving to an open source version”. Most of the time, these too are nonnegotiable.

Architecture: Quality attributes Compatibility Extensibility Maintainability Reusability Robustness Usability Security

Architecture: Quality attributes Perfomance Scalability

Architecture Subroutines libraries Modules Objects components

Software architect Technical leader Liaison (/liˈeɪz(ə)n/) (translates and explains different terminology between different stakeholders). Risk management: Googd architects should be cautious

Software architect Software Engineering: Excellent design skills are what get a software engineer to the position of architect. They are an essential prerequisite for the role. Architects must promote good software engineering practices.

Software architects Architect chief architect Solution architect Enterprize architect

chief architect Senior position Responsible for product line Manages a team of architects within an organization Very experienced Combines deep technical and business knowledge.

Product/Technical/Solution Architect Typically someone who has progressed through the technical ranks and oversees the architectural design for a specific system or application. They have a deep knowledge of how some important piece of software really works.

Enterprise Architect Typically a much less technical, more business-focus role. Enterprise architects use various business methods and tools to understand, document, and plan the structure of the major systems in an enterprise

Enterprise Architect Enterprise architects create documents, roadmaps, and models that describe the logical organization of business strategies, metrics, business capabilities, business processes, information resources, business systems, and networking infrastructure within the enterprise.

Architect Application type Style Technologies

Architect: application types Web application Desktop application Console application Web-service Middleware

Marketecture (architecture cartoon) One page informal depiction of the system’s structure and interactions

Home task Review available positions Brief role description Responsibilities (7+ items) Qualifications (+ Education (5+ items)) Overall Salary

Lab 1 topics MVVM – web ( angular backbone js knockout) MVVM – desktop (wpf or other) Document-oriented storages MongoDB, Reddis Open Data Protocol (OData)  OAuth Yii framework WWF