当前位置:天才代写 > 作业代写,留学生作业代写-北美、澳洲、英国等靠谱代写 > 软件工程代写 programming代写 Midterm代写 assignment代写

软件工程代写 programming代写 Midterm代写 assignment代写

2021-03-31 17:56 星期三 所属: 作业代写,留学生作业代写-北美、澳洲、英国等靠谱代写 浏览:1080

Software Engineering代写

Midterm Review

Software Engineering1代写 Details regarding any terms or concepts mentioned below can be found inChapters 1, 2, 7, 4, 9, and 5 of the textbook

Readings 软件工程代写

Details regarding any terms or concepts mentioned below can be found in

  • Chapters 1, 2, 7, 4, 9, and 5 of the textbook and the accompanying slides posted under Course Content at Blackboard
  • Supplemental materials covered by slides under Course Content at Blackboard, including
    • Scrum (Introduction and INVEST in user stories)
    • Git (for Volition)
软件工程代写
软件工程代写

Software Engineering Terminology 软件工程代写

You should be able to define and answer questions involving the following terms. I’ve supplied definitions for some where it seems to me that the book or other materials have not provided a clear (or good) definition.

  • Requirements, both functional and non-functional 软件工程代写
  • Design
  • Implementation
  • Elapsed time
  • Effort
  • Decomposition
  • Iterative development process: repeatedly perform the entire set of software development activities (analyze, design, implement, test, integrate).
  • Architectural design
  • System view
  • Architectural style: generic definition and specific definitions for each of the following styles:
    • Pipe-and-filter
    • Event-driven
    • Client-server
    • Model-view-controller
    • Layered
    • Database centric
    • Three-tier
    • Model-view-presenter
  • Architectural tactic
  • Reference architecture
  • Functional decomposition
  • Relational database: a set of two-dimensional tables of data that can be related to one another via keys 软件工程代写
    • Primary key
    • Foreign key
  • Levels of database design
    • Conceptual modeling
    • Logical design
    • Physical design
    • Deployment
  • ER (Entity-Relationship) Diagram: diagram for showing a system’s data and relationships among data elements that is readily convertible to a description of a relational database.
    • Entity
      • Weak vs normal
    • Relationship
    • Attribute, including:
      • Multi-valued (e.g., a person can have multiple email addresses)
      • Composite (e.g., a person’s name can consist of title, first name, middle initial, last name, and suffix components)
    • Modifiers on relationship, including how these appear on an ER diagram
      • Cardinality: number of occurrences of entities

Modality: necessities of relationships

    • UML (Unified Modeling Language): a graphical language used for providing a variety of views of the design of object-oriented software
    • UML use case diagram: illustrates relationships between actors and use cases/user stories
    • UML class diagram: illustrates pertinent fields and methods of classes and static relationships between classes
      • Association: any relationship between classes
      • Aggregation (diamond symbol on aggregating class): One or more classes are “part of” another, aggregate, class 软件工程代写
        • Composition: Like aggregation, but in addition the “parts” do not exist independently of the whole. In coding terms, the composing object is responsible for creating and destroying its part objects.
      • Inheritance (triangular arrow symbol pointing to superclass): One class inherits from another
    • UML state transition diagram: diagram showing the states that a system can be in and how events cause transitions between states
    • UML sequence diagram: diagram illustrating dynamic interactions between classes, specifically, how methods are called (messages are passed between) classes over time
    • Object-oriented/relational mapping: Software the facilitates the transfer of data between object-oriented software and a relational database. Room is an example.
Process model
    • Waterfall model
    • Incremental model with continuous integration
    • Incremental model with multiple releases
    • Risk: Anything that could cause a software project to fail to achieve its goals.
    • Javadoc
    • Refactoring: modifying code in order to improve its design and/or implementation, not in order to change its functionality.软件工程代写
    • Pair programming: two programmers working together at one machine.
    • Scrum
    • User story
    • Story points
    • Sprint
    • Product backlog
    • Task (in the context of user stories)软件工程代写
    • Sprint backlog
    • Product Owner
    • ScrumMaster
    • Sprint planning meeting
    • Daily stand-up (what is supposed to occur)
    • Sprint review meeting
    • Sprint retrospective meeting
    • Sprint burndown chart
    • Scrum of scrums
    • Planning poker
    • Git: particular set of software for sharing software and managing different versions of software
    • Git commands (describe what each does conceptually; you do not need to know exact syntax)
      • clone
      • checkout
      • add
      • commit
      • push
      • pull
      • branch

Software-Engineering Concepts 软件工程代写写

You should be able to explain, discuss, compare, work with, etc. the following concepts. For some concepts I’ve provided a brief description/explanation; others you should look up if you’re unsure about them.

  • Essentially every software project has these four activities: analysis, design, implementation, testing
    • What differs from project to project is when these activities are performed and how they are carried out
  • Major differences between school homework assignments and building systems: increases in complexity, particularly increases in number and types of interactions between elements of the system
    • Real-world systems also include packaging/distribution and maintenance activities along with the other four activities

What are three approaches to dealing with complexity?

  • “Simplification” (divide and conquer): decompose problem, employ incremental development, etc.
  • “Technology”: use better software development and support tools such as Android Studio IDE, Git, Jira, etc.
  • “Process”: follow best practices for organizing and managing activities and people, such as Scrum 软件工程代写
  • Project coordination involves three P’s: Processes, Products, and People
  • Design is often described at two levels: architectural and detailed.
  • List and/or briefly describe at least four of the seven architectural patterns covered in Section 7.2.3 and be able to compare/contrast architectures and determine which of several options is most suitable for certain problems.软件工程代写
  • Give an example of an architectural tactic
  • Name an example of a reference architecture
  • List and/or briefly describe at least two of the four levels of database design and be able to identify which of a pair of levels is conceptually higher (would come earlier in a development process) than the other
  • Be able to interpret an ER diagram, specifying the entities, relationships, and attributes, including weak entities, multi-valued attributes, identifying (key) attributes, and cardinalities
  • Be able to construct an ER diagram given a simple problem domain description
  • Be able to logically design appropriate database tables, indicating primary and foreign keys, for a given simple ER diagram
Be able to list/briefly describe at least three different types of UML diagrams 软件工程代写
  • Be able to draw or interpret a simple UML class diagram illustrating classes (appropriately broken into three areas for name, fields, and methods) and various associations, including those showing aggregation and inheritance.
  • Be able to interpret a simple UML state diagram
  • Be able to interpret a simple UML sequence diagram
  • UI design involves two distinct aspects: designing flow of interactions and designing look-and-feel 软件工程代写
  • Consistency, both internal and external, is a key UI design heuristic
  • List and/or briefly describe at least two of the seven other-than-consistency “other issues” for UIs beginning on p. 156 (Chapter 7 slide 56)
  • Iterative development is also necessarily incremental, but the converse does not necessarily hold. For instance, all analysis and design might be done at one time and only the coding and testing be done incrementally.
  • The waterfall model was an improvement over having no process methodology at all, but for the most part it cannot be followed in real-world practice because requirements change over time, mistakes are discovered that require reworking analysis and design, etc.软件工程代写
  • The spiral model is an example of an iterative process that focuses on reducing risk.
  • A good implementation will have features including readability, maintainability, good performance, traceability to requirements, correctness, and completeness; you should be able to list at least four of these
  • Why coding guidelines are important: consistency
  • What coding guidelines usually cover (naming, formatting, language usage)
  • The best comments describe what the code is intended to do and provide external references when appropriate
List at least two of the four values of the Agile Manifesto.
  • Know that Pair Programming is a “key practice” of Extreme Programming (XP).
  • Scrum: Popular agile development methodology based on the notion of sprints, leading to highly incremental and iterative approach to developement.
  • Name and briefly describe the three main roles in Scrum.软件工程代写
  • Name and briefly describe the four meetings that are part of every Scrum sprint (daily stand-up, planning, review, retrospective)
  • Name and/or briefly describe at least four of the elements of INVESTing in good user stories (four of the six attributes represented by INVEST)
  • Briefly explain how Planning Poker is “played” and for what purpose we have used it.
  • Git repository
    • Commit objects: what they are, what they point to
    • Graph structure of Git repository: commit graph, tree objects
    • Which way does a commit object point, toward an earlier commit object or a later one?软件工程代写
    • When will a commit object contain pointers to two or more other commit objects rather than to one?
    • Compression and the Git repository
  • A branch in Git is a named pointer to a commit object that is updated to track subsequent commits.
  • Git branches facilitate individuals working in parallel from a shared starting point and merging their completed code back to the shared branch.
  • What a merge conflict is and how a conflict can arise
    • Describe (at a high level; the exact syntax is not important) how Git represents a merge conflict
  • Git “index” (staging area): what is it, which Git commands interact with it and how

Software Engineering Terms and Concepts learned in the context of Android Architecture Components

Related reading: Android Architecture Components slides 1-20 and/or Google codelabs referenced in the final slide

  • Design patterns: Standard approaches to handling common situations/problems that arise when developing object-oriented software.软件工程代写
    • Observer design pattern: used to provide data from a background asynchronous thread to a main thread
      • Subject object produces data asynchronously
        • Example: LiveData object
      • Observer object registers itself with subject; method of the observer is called when subject has new data.软件工程代写
        • Example: Adroid Observer object, passed to observe() method of a LiveData object, has onChanged() method called when LiveData object has new data
      • Singleton: used when, for performance or sharing reasons, we wish to create only a single instance of a class
        • Class has a private constructor and a public static method that invokes the constructor the first time called and on subsequent calls returns a cached copy of the object created on the first call.
        • Example: Singleton pattern should normally be used in an Android app creating a database object.
      • Data Access Object (DAO): Object that provides methods for interacting with a persistent data store, such as a database.
        • Example: The Room architecture component provides a DAO interface for mapping Java method calls to SQL statements and mapping to Java objects any data returned by executing those statements.
软件工程代写
软件工程代写

其他代写:algorithm代写 analysis代写 app代写 assembly代写 assignment代写 C++代写 C/C++代写 code代写 course代写 dataset代写 finance代写 java代写 source code代写 java代写 web代写 北美作业代写 数据分析代写 编程代写 考试助攻 北美作业代写

合作平台:essay代写 论文代写 写手招聘 英国留学生代写

 

天才代写-代写联系方式